平台: RK3066 ARM9双核 Android4.1

一 Network Daemon(netd)功能概述:

Netd是Android的网络守护进程。NetD是个网络管家,封装了复杂的底层各种类型的网络(NAT,PLAN,PPP,SOFTAP,TECHER,ETHO,MDNS等),隔离了底层网络接口的差异,给Framework提供了统一调用接口,简化了网络的使用。NetD主要功能是:第一、接收Framework的网络请求,处理请求,向Framework层反馈处理结果;第二、监听网络事件(断开/连接/错误等),向Framework层上报。

NetD程序的大概逻辑: [Kernel] (NetD) [Framework]。事件和命令传送采用跨进程通信机制(SOCKET)。

二 Network Daemon(netd)源码分析:

Netd:

/System/netd

/system/core/libsysutils/src

/system/core/include/sysutils

Framework:

/frameworks/base/services/java/com/android/server

int 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)交互:

网络守护进程netd,有很多功能,程序可以通过它查询各种网络的状态或拦截各种网络事件。下面就用以发布一个网络服务为例说明,具体的一个程序如何与net交互。

android 内核 netlink 上报,Network Daemon(Android Netd)架构和源码分析相关推荐

  1. Android仿QQ5.0侧滑菜单ResideMenu的使用和源码分析

    本文出自Cym的博客(http://blog.csdn.net/cym492224103) ResideMenu github:https://github.com/SpecialCyCi/Andro ...

  2. Android RxJava(一) create操作符的用法和源码分析

    RxJava(一) create操作符的用法和源码分析 转载于:https://www.cnblogs.com/zhujiabin/p/7291901.html

  3. Android Camera 系统架构源码分析

    Android Camera 系统架构源码分析(1)---->Camera的初始化 Android Camera 系统架构源码分析(2)---->Camera的startPreview和s ...

  4. android lottie字体json,从json文件到炫酷动画-Lottie实现思路和源码分析

    从json文件到炫酷动画-Lottie实现思路和源码分析,Lottie是最近Airbnb开源的动画项目,支持Android.iOS.ReactNaitve三个平台,本文分析主要Lottie把json文 ...

  5. Tensorflow源码解析1 -- 内核架构和源码结构

    1 主流深度学习框架对比 当今的软件开发基本都是分层化和模块化的,应用层开发会基于框架层.比如开发Linux Driver会基于Linux kernel,开发Android app会基于Android ...

  6. android 代码 drawable,Android Drawable完全解析(一):Drawable源码分析(中)

    呃...我不是故意要凑篇幅写个什么上下篇,实在是因为Drawable源码有点长,一篇写不下啦O(∩_∩)O~ 鉴于源码一般较长,以后所有源码分析的部分,英文注释非必要情况都不再保留! 2:Drawab ...

  7. Android 12 新APP启动画面(SplashScreen API)简介源码分析

    以往的启动画面 默认情况下刚启动APP时会显示一会白色背景 如果把这个启动背景设置为null,则一闪而过的白色会变成黑色 如果把启动Activity设置为背景透明[< item name=&qu ...

  8. spark中local模式与cluster模式使用场景_Spark内核及通信框架概述-针对面试(后面有源码分析)...

    Spark 内核概述 Spark内核泛指Spark的核心运行机制,包括Spark核心组件的运行机制.Spark的任务调度机制.Spark的内存管理机制.Spark核心功能的运行原理等.熟练掌握Spar ...

  9. 蚂蚁金服分布式链路跟踪组件 SOFATracer 数据上报机制和源码分析 | 剖析

    2019新春支付宝红包技术大揭秘在线峰会将于03-07日开始,点击这里报名届时即可参与大牛互动. SOFA Scalable Open Financial Architecture 是蚂蚁金服自主研发 ...

最新文章

  1. ThoughtWorks雷达上的新奇变化
  2. char* 大小_SQL Server中char, nchar, varchar和nvarchar数据类型有何区别
  3. c#事件的发布-订阅模型_微信灰度测试订阅号付费功能,小米推出最便宜5G套餐,腾讯辟谣高管猝死赔钱事件,核心期刊发布十岁儿童文章,这就是今天的其他大新闻!...
  4. 32 SD配置-合作伙伴确认-设置客户主数据的合作伙伴确定
  5. jquery-weui滚动加载问题解决
  6. spss和python stata matlab_(SPSS,Matlab,stata,Python)相关性?
  7. Mysql学习总结(65)——项目实战中常用SQL实践总结
  8. LINQ语法之into
  9. dev gridcontrol 单箱效果
  10. 如何用Java的Robot完成模拟鼠标移动和键盘输入(可应用刷网课)
  11. 第二章 ARM体系结构与指令集——ARM
  12. C++复习(二)——绘制余弦函数图像
  13. 计算机软件期刊是不是中文核心,2020计算机测量与控制是什么期刊_计算机测量与控制是核心期刊吗_计算机测量与控制官网...
  14. C语言---编译器、编辑器
  15. php 防挂马,织梦dedecms安全设置防挂马教程
  16. 关于火车采集文章发布到wordpress后台待审核模块的设置
  17. matlab中三维数组,维数转换
  18. 源码自动生成流程图软件介绍
  19. 共射级放大电路—实现最大输出振幅的方法竟如此简单
  20. 哈尔滨计算机职业学校赵梓琦,哈尔滨赛区复选晋级名单

热门文章

  1. PyTorch图像分类从模型自定义到测试
  2. Qt实用技巧:使用OpenCV库的视频播放器(支持播放器操作,如暂停、恢复、停止、时间、进度条拽托等...
  3. 酷炫的深度学习网络图怎么绘制出来的?
  4. 一道有关动态规划(Dynamic Programming)的网易面试题
  5. GitHub代码一键转VS Code:只需+1s
  6. 基于OpenCV的人员剔除
  7. MySQL删除表及删除表数据操作
  8. mysql5.6.20二进制安装
  9. CentOS 6/7 忘记root密码,重新设置的方法
  10. spark最新源码下载并导入到开发环境下助推高质量代码(Scala IDEA for Eclipse和IntelliJ IDEA皆适用)(以spark2.2.0源码包为例)(图文详解)...