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

android Tether 分析

2015-12-16 15:02 1271 查看
最近研究Android下有线网络的DHCP和路由方案,分析了一些Android 共享网络管理的有关代码。涉及以下文件:

ConnectivityService.java

NetworkmanagementService.java,

TetherSetting.java

Tethering.java

当用户点击设置应用中的LAN 共享 checkbox按钮后,调用了TetherSetting.java中的OnPreferenceClick(),它 调用setUsbTethering(),它调用cm.setUsbTethering()其中cm是IConnectivityManager的实例,cm调用了ConnectivityService.java中实现,即setUsbTethering(),它又调用Tethering.java中的setUsbTethering(),它又调用Tethering.java中的tetherUsb()中的NMService.startTethering(),它又调用NetworkManagementService.java中的startTethering()函数,它又调用了doCommand(),它又调用了hal层的netd接口,netd中有commandListener.cpp实现,它又调用了TetherController.cpp中的startTethering接口,最后调用dnsmasq,去实现。

在设置应用中的网络共享栏的布局文件对应于packages/apps/Settings/res/xml/tether_prefs.xml,其中定义了界面文字对应的key 值,在TetherSetting.java中对xml文件中按照字段进行获取和初始化。其中key值,Java文件和xml文件要保持一致,否则preference与对应的CheckboxPreference就不一致了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: