您的位置:首页 > 移动开发 > Android开发

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

2014-06-23 18:07 357 查看

这篇粗略介绍-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功能

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: