网络监听Network Daemon(Android Netd)架构和源码分析网络监听
本篇文章笔者在北京游玩的时候突然想到的...近期就有想写几篇关于网络监听的博客,所以回家到之后就奋笔疾书的写出来布发了
平台: RK3066 ARM9核双 Android4.1
一 Network Daemon(netd)功能概述:
Netd是Android的网络护守程进。NetD是个网络管家,封装了庞杂的底层各种类型的网络(NAT,PLAN,PPP,SOFTAP,TECHER,ETHO,MDNS等),隔离了底层网络接口的差异,给Framework供提了同一用调接口,简化了网络的用使。NetD主要功能是:第一、收接Framework的网络请求,处置请求,向Framework层反馈处置结果;第二、监听网络事件(断开/连接/错误等),向Framework层上报。
NetD程序的大概逻辑: [Kernel] <--Network Event--> (NetD) <--Command--> [Framework]。事件和令命传送采取跨程进信通机制(SOCKET)。
二 Network Daemon(netd)码源分析:
Netd:
/System/netd
/system/core/libsysutils/src
/system/core/include/sysutils
Framework:
/frameworks/base/services/java/com/android/serverint main() { NetlinkManager *nm = NetlinkManager::Instance();/*实例化一个令命监听示例,监听Framework令命,处置完成后复恢Framework层*/CommandListener *cl = new CommandListener(); nm->setBroadcaster((SocketListener *) cl); /*开启监听内核网络事件程线*/nm->start();/*cl 开启程线,监听 framework 层下发的令命,并用调相干函数处置 */ cl->startListener();/*置设为内网DNS式模*/setenv("ANDROID_DNS_MODE", "local", 1);DnsProxyListener *dpl = new DnsProxyListener(); dpl->startListener();/*播多DNS*/MDnsSdListener *mdnsl = new MDnsSdListener(); mdnsl->startListener();
}
三 Network Daemon(netd)架构分析:
四 如果与Network Daemon(netd)交互:
文章结束给大家分享下程序员的一些笑话语录: 程序员打油诗
写字楼里写字间,写字间里程序员;
程序人员写程序,又拿程序换酒钱。
酒醒只在网上坐,酒醉还来网下眠;
酒醉酒醒日复日,网上网下年复年。
但愿老死电脑间,不愿鞠躬老板前;
奔驰宝马贵者趣,公交自行程序员。
别人笑我忒疯癫,我笑自己命太贱;
不见满街漂亮妹,哪个归得程序员。
转载于:https://www.cnblogs.com/jiangu66/archive/2013/04/19/3031592.html
网络监听Network Daemon(Android Netd)架构和源码分析网络监听相关推荐
- android 内核 netlink 上报,Network Daemon(Android Netd)架构和源码分析
平台: RK3066 ARM9双核 Android4.1 一 Network Daemon(netd)功能概述: Netd是Android的网络守护进程.NetD是个网络管家,封装了复杂的底层各种类型 ...
- java底层app_Java底层类和源码分析系列-ArrayBlockingQueue底层架构和源码分析
ArrayBlockingQueue是一个基于数组实现的有界的阻塞队列. 几个要点 ArrayBlockingQueue是一个用数组实现的队列,所以在效率上比链表结构的LinkedBlockingQu ...
- Android Camera 系统架构源码分析
Android Camera 系统架构源码分析(1)---->Camera的初始化 Android Camera 系统架构源码分析(2)---->Camera的startPreview和s ...
- Android uevent进程源码分析
在Android Init进程源码分析中讲到init进程会依次执行被加入到待执行队列action_queue中的Action,在init.rc中我们有这么一段配置: 11 on early-init1 ...
- Netty网络框架学习笔记-16(心跳(heartbeat)服务源码分析)
Netty网络框架学习笔记-16(心跳(heartbeat)服务源码分析_2020.06.25) 前言: Netty 作为一个网络框架,提供了诸多功能,比如编码解码等,Netty 还提供了非常重要的一 ...
- android lottie字体json,从json文件到炫酷动画-Lottie实现思路和源码分析
从json文件到炫酷动画-Lottie实现思路和源码分析,Lottie是最近Airbnb开源的动画项目,支持Android.iOS.ReactNaitve三个平台,本文分析主要Lottie把json文 ...
- 【OkHttp】OkHttp 源码分析 ( 网络框架封装 | OkHttp 4 迁移 | OkHttp 建造者模式 )
OkHttp 系列文章目录 [OkHttp]OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) [OkHttp]Android 项目导入 OkHttp ( 配置依赖 | 配置 ...
- Tensorflow源码解析1 -- 内核架构和源码结构
1 主流深度学习框架对比 当今的软件开发基本都是分层化和模块化的,应用层开发会基于框架层.比如开发Linux Driver会基于Linux kernel,开发Android app会基于Android ...
- docker containerd 架构和源码简单分析
docker containerd 架构和源码简单分析 本文结合docker1.12简单说明一下docker 的现有框架,简单分析docker containerd的架构和源码. docker发展到现 ...
- CTS(11)---android自动化测试CTS源码分析之一
android自动化测试CTS源码分析之一 1, 概述 CTS(Compatibility Test Suite)全名兼容性测试,主要目的就是让Android设备开发商能够开发出兼容性更好的andro ...
最新文章
- wxWidgets:wxNavigationKeyEvent类用法
- 100万“愤怒的小鸟”:中国手机开发者生存调查
- 本地环境用eclipse搭建spring源码环境
- ZOJ 2060----Fibonacci Again
- nubia android root权限,获取中兴NX403a (Nubia Z5S Mini Android 4.2)ROOT权限教程,新手必看...
- 运用java 多线程模拟火车售票。。。。
- 内存条上面参数详解_为什么买内存条要看时序?别以为内存频率高性能就好
- ios设计规范_e微课5期:ios设计规范带来的设计细节(下篇)
- Web项目(四)————异步队列的实现
- 你踩过dataguard的哪些坑?
- HMC 命令行登陆设置
- [LeetCode] 92. Reverse Linked List II 反向链表II
- 赋值pingfang(i)=x; 与或非
- 斐讯K3C官改V1.7D降级至官改V1.6
- 蛋白质组学数据分析实践
- 【C#】打印机ZPL指令,打印文本,中文,条码,图片
- phpnow开启mysqli扩展
- 近来学习的一些东西和思考
- java的像素与dpi_DPI与像素的关系
- 二极管与、或门,三极管非门电路原理