Android 4.1 Netd詳細分析(二)源檔案/模組/基礎類統領

來源:互聯網
上載者:User

個人郵箱: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
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功能


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.