原址

Android5.0之后,网络的功能实现完全转移到netd上面,主要包括ip,路由配置,dns代理设置,带宽控制和流量统计等。

下面是Netd框架示意图,NetworkManagerService和NativeDeamonConnect是java代码,NetworkManagerService作为service随系统启动,java层所有对网络的操作都通过它来完成。

其他都是c++代码,主要完成两个工作:1.接收上层的命令,完成指定对网络的操作;2.接收kernel netlink信息,传递到上层。

接收上层命令的工作,通过4个socket完成:/dev/socket/netd    /dev/socket/dnsproxyd   /dev/socket/mdns  /dev/socket/fwmarkd,分别对应CommandListener,DnsproxyListener,MdnsSdListener和FwmarkServer。

CommandListener接收配置ip,路由,iptables的命令

DnsproxyListener接收查询dns的操作

MdnsSdListener接收针对mdnsd的操作

FwmarkServer用于对特定的socket设置mark值

下图是Netlink部分,模块调用关系示例

NetlinkManager启动3个socket,用于监听3种不同的event:Uevent,RouteEvent,QuotaEvent。通过SocketListener实现监听功能,netlink信息,最终通过/dev/socket/netd送到NetworkManagementService(java代码),分配到注册到它里面的各个观察者实例(Ethernet,wifi等)。

Android5.0 netd架构流程相关推荐

  1. android架构 vold,Android5.0 vold-整体架构

    概述 该篇文章主要讲解vold的整体框架和工作流程,不会涉及到具体的实现. 具体的实现(从framework到Native再到协议族)会在如下的后续文章里提及. Android5.0 vold-启动过 ...

  2. Android5.0源码分析—— Zygote进程分析

    1      Zygote简介 Android的应用程序一般都是由Java语言编写而成的,这样的应用程序需要运行在独自的Dalvik虚拟机之上(当然,5.0好像默认了ART了).但是,如果在每一个进程 ...

  3. Android5.0,6.0,7.0,8.0新特性整理

    背景 Android5.0(Android Lollipop)是谷歌公司2014年10月发布的全新安卓系统,至今已经两年多.然而由于国产手机对安卓ROM的深度定制或修改,以及手机厂商.芯片制造商.运营 ...

  4. Android5.0,6.0,7.0新特性整理

    背景 Android5.0(Android Lollipop)是谷歌公司2014年10月发布的全新安卓系统,至今已经两年多.然而由于国产手机对安卓ROM的深度定制或修改,以及手机厂商.芯片制造商.运营 ...

  5. Android5.0 6.0 7.0新特性

    原文链接:http://blog.csdn.net/haovip123/article/details/54618642 背景 Android5.0(Android Lollipop)是谷歌公司201 ...

  6. Android5.0 Telephony框架初步分析--telecomm

    3.2   Telecomm关键类初始化和相互关系 3.2.1          Telecomm简述 Android5.0在Telephony的变化又比较大,增加了一个Telecomm模块,它位于界 ...

  7. Android5.0,6.0,7.0,8.0,9.0区别

    2014年10月发布了Android5.0 2015年5月发布了Android6.0 2016年8月发布了Android7.0 2017年8月22日发布了Android 8.0的正式版Android ...

  8. android5.0(Lollipop) BLE Peripheral牛刀小试

    转载请表明作者:http://blog.csdn.net/lansefeiyang08/article/details/46468743 知道Android L对蓝牙对了一些改进,包括添加A2dp s ...

  9. android+5.0+ble,android5.0(Lollipop) BLE Peripheral牛刀小试(示例代码)

    转载请表明作者:http://blog.csdn.net/lansefeiyang08/article/details/46468743 知道Android L对蓝牙对了一些改进.包含加入A2dp s ...

最新文章

  1. 从经典问题开始教你如何入门计算机视觉!贴心!
  2. mysql 几十连接_MySQL挑战:10万连接数
  3. 【JavaScript】jQuery绑定事件
  4. 移动时代的互联网格局变化
  5. JAVA里面main找不到符号_java – 带有NBAndroid的NetBeans – 找不到符号setContentView(R.layout.main);...
  6. win7 64 位用VMware安装Ubantu 20130908
  7. 如何利用 JConsole观察分析Java程序的运行,进行排错调优(转)
  8. 微软的基础服务器,微服务器当道 微软云端基础构架揭秘
  9. Windows下Redis安装的那些事儿!
  10. 【Android】科大讯飞——语音识别
  11. 【visio】visio软件安装
  12. 软件测试实习面试都问啥?
  13. this beta version of Typora is expired, please download and install a newer version.Typora
  14. 国庆节发个国庆直播的小软件
  15. 在pycharm中使用arcpy
  16. 更改mysql数据库主键自增时报错ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1
  17. ICCV2019语义分割/UDA:ACE: Adapting to Changing Environments for Semantic SegmentationACE:适应变化环境下的语义分割
  18. 你可能错过的40个macOS Monterey提示、技巧和功能
  19. FFMPEG -- av_guess_format
  20. 【2018慢性病与信息大会】钟代笛:个人互联健康领域的国际标准

热门文章

  1. unicode学习笔记
  2. cobertura试用
  3. Modernizr 浏览器兼容功能检测
  4. 深度学习 --- BP算法详解(BP算法的优化)
  5. vue项目跨域问题完全解决
  6. pythonmkdir语法错误_Python mkdir一个有难度的问题
  7. html() 无效,Internet Explorer无效HTML解析代码漏洞
  8. 计算机世界赛一年几届夺冠,纵观lol历届s系列赛, 哪一届夺冠的含金量最高? 哪一届又最低?...
  9. IDEA 如何打jar包
  10. python 下载bilibili视频