本篇文章笔者在北京游玩的时候突然想到的...近期就有想写几篇关于网络监听的博客,所以回家到之后就奋笔疾书的写出来布发了

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

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

文章结束给大家分享下程序员的一些笑话语录: 程序员打油诗   
  写字楼里写字间,写字间里程序员;
  程序人员写程序,又拿程序换酒钱。
  酒醒只在网上坐,酒醉还来网下眠;
  酒醉酒醒日复日,网上网下年复年。
  但愿老死电脑间,不愿鞠躬老板前;
  奔驰宝马贵者趣,公交自行程序员。
  别人笑我忒疯癫,我笑自己命太贱;
  不见满街漂亮妹,哪个归得程序员。

转载于:https://www.cnblogs.com/jiangu66/archive/2013/04/19/3031592.html

网络监听Network Daemon(Android Netd)架构和源码分析网络监听相关推荐

  1. android 内核 netlink 上报,Network Daemon(Android Netd)架构和源码分析

    平台: RK3066 ARM9双核 Android4.1 一 Network Daemon(netd)功能概述: Netd是Android的网络守护进程.NetD是个网络管家,封装了复杂的底层各种类型 ...

  2. java底层app_Java底层类和源码分析系列-ArrayBlockingQueue底层架构和源码分析

    ArrayBlockingQueue是一个基于数组实现的有界的阻塞队列. 几个要点 ArrayBlockingQueue是一个用数组实现的队列,所以在效率上比链表结构的LinkedBlockingQu ...

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

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

  4. Android uevent进程源码分析

    在Android Init进程源码分析中讲到init进程会依次执行被加入到待执行队列action_queue中的Action,在init.rc中我们有这么一段配置: 11 on early-init1 ...

  5. Netty网络框架学习笔记-16(心跳(heartbeat)服务源码分析)

    Netty网络框架学习笔记-16(心跳(heartbeat)服务源码分析_2020.06.25) 前言: Netty 作为一个网络框架,提供了诸多功能,比如编码解码等,Netty 还提供了非常重要的一 ...

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

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

  7. 【OkHttp】OkHttp 源码分析 ( 网络框架封装 | OkHttp 4 迁移 | OkHttp 建造者模式 )

    OkHttp 系列文章目录 [OkHttp]OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) [OkHttp]Android 项目导入 OkHttp ( 配置依赖 | 配置 ...

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

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

  9. docker containerd 架构和源码简单分析

    docker containerd 架构和源码简单分析 本文结合docker1.12简单说明一下docker 的现有框架,简单分析docker containerd的架构和源码. docker发展到现 ...

  10. CTS(11)---android自动化测试CTS源码分析之一

    android自动化测试CTS源码分析之一 1, 概述 CTS(Compatibility Test Suite)全名兼容性测试,主要目的就是让Android设备开发商能够开发出兼容性更好的andro ...

最新文章

  1. wxWidgets:wxNavigationKeyEvent类用法
  2. 100万“愤怒的小鸟”:中国手机开发者生存调查
  3. 本地环境用eclipse搭建spring源码环境
  4. ZOJ 2060----Fibonacci Again
  5. nubia android root权限,获取中兴NX403a (Nubia Z5S Mini Android 4.2)ROOT权限教程,新手必看...
  6. 运用java 多线程模拟火车售票。。。。
  7. 内存条上面参数详解_为什么买内存条要看时序?别以为内存频率高性能就好
  8. ios设计规范_e微课5期:ios设计规范带来的设计细节(下篇)
  9. Web项目(四)————异步队列的实现
  10. 你踩过dataguard的哪些坑?
  11. HMC 命令行登陆设置
  12. [LeetCode] 92. Reverse Linked List II 反向链表II
  13. 赋值pingfang(i)=x; 与或非
  14. 斐讯K3C官改V1.7D降级至官改V1.6
  15. 蛋白质组学数据分析实践
  16. 【C#】打印机ZPL指令,打印文本,中文,条码,图片
  17. phpnow开启mysqli扩展
  18. 近来学习的一些东西和思考
  19. java的像素与dpi_DPI与像素的关系
  20. 二极管与、或门,三极管非门电路原理

热门文章

  1. Idea常用快捷键及功能简记--不断更新
  2. Cesium中的常用坐标及转换
  3. 设置linux中docker中的mysql开机自动启动
  4. 邢台市初中计算机考试,2019年邢台中考总分多少分,邢台中考各个科目多少分
  5. php中fgetss函数,fgetss-函数用法_PHP教程
  6. 印第安纳大学计算机语言学,语言学
  7. 实战:详解Reaact+AntD+Node后台管理系统
  8. React:工程化开发
  9. Javascript:json数据根据某一个字段进行排序
  10. 自动驾驶_基于强化学习的自动驾驶系统