Android 4.1 Netd详细分析(二)源文件/模块/基础类统领

个人邮箱:xiaokeweng@gmail.com

这篇粗略介绍-Netd文件夹下面的源文件/模块的基本功能,和主要类的组织关系。

一、文件构成

Netd文件下的源文件模块~组织以及基本实现功能:

======================================================================
Android.mk                                            \Android makefile
CleanSpec.mk
main.cpp                                                \主函数入口

======================================================================
CommandListener.cpp
                                                                 \监听 frameworek 层命令,通过 tcp
                                                                 \向 framework 层注册处理函数命令的 cmd
                                                                 \实现对应命令的处理函数
CommandListener.h

======================================================================
NetlinkManager.cpp                                 \监听 kernel 的 event,通过无连接socket 可以
                                                                 \理解为udp在 setsocketopt 中实现与 kernel 
                                                                 \的关联监听事件类型
NetlinkManager.h

======================================================================
NetdCommand.cpp                             \直接调用 frameworkcommand
NetdCommand.h
NetlinkHandler.cpp                             \继承自 NetlinkListener
                                                                 \onEvent 函数的实现
                                                                 \根据 onEvent 函数命令的解析调用不同的处理函数
                                                                 \并调用 nm->sendBroadcast 广播 ResponseCode
NetlinkHandler.h
NetdConstants.cpp                             \全局路径 为操作 iptable 的函数提供
NetdConstants.h

======================================================================
List.h
logwrapper.c
ndc.c                                                 \NativeDaemonConnector
oem_iptables_hook.cpp                     \iptable 系统调用 hook
oem_iptables_hook.h

======================================================================
DnsProxyListener.cpp                         \DNS 解析相关独立部分
DnsProxyListener.h

MdnsSdListener.cpp                           \Multi-DNS 解析独立部分
MdnsSdListener.h

======================================================================
IdletimerController.cpp                       \具体的要注册给 Framework 的 cmd 的处理部分
IdletimerController.h
BandwidthController.cpp
BandwidthController.h
NatController.cpp
NatController.h
PanController.cpp
PanController.h
PppController.cpp
PppController.h
ResolverController.cpp
ResolverController.h
ResponseCode.h
SecondaryTableController.cpp
SecondaryTableController.h
SoftapController.cpp
SoftapController.h
TetherController.cpp
TetherController.h
ThrottleController.cpp
ThrottleController.h

======================================================================

二、文件中最主要的类是:


管理类:

CommandListener、NetlinkManager、MdnsSdListener、DnsProxyListener

处理类:

ResponseCode、Netlinkhandler、 CommandListener::XXXCmd 

相关类:

Socketlistener、SocketClient、NetlinkListener、NetlinkEvent、FrameworkListener、FrameworkCommand、FrameworkClient

下面是一些UML,也不规范,大概意思明白就可以~~ 在后面还会详细的介绍。


(1)CommandListener、NetlinkHandler


(2)命令的上传/下达

(3)各种cmd功能


  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值