tether代码走读

Android 11.0.0_r11 20201205

tether代码已经被挪到packages\modules\Connectivity\Tethering,参考说明

https://source.android.com/devices/architecture/modular-system/tethering

 

tetherManager简单封装了接口和回调,在mainline project之前(Q之前?)是没有接口的

tetherManager.startTethering->tethering.startTethering->tethering.enableTetheringInternal->xxxxManager, xxx是Wifi,Usb,Bluetooth等,除了EthernerManager和蓝牙是等回调,其他都是等xxxManager的Action,这样就把接口归一到原来的实现了。

原来的实现:

setting调用xxxManager接口->xxxManager内部逻辑,把网卡准备好,->发送 xxxx Action->tethering.handleXXXAction->tethering.changeInterfaceState->tetherState.ipServer.sendMessage(IpServer.CMD_TETHER_REQUESTED

ipServer不管具体网卡,只管是否静态ip地址,以及是否需要转发(IpServer.STATE_TETHERED,IpServer.STATE_LOCAL_ONLY)

 

module化的疑问

1. cdd条款里没看到

2. mainline的说明里要求oem保持接口的通用,没说是否闭源

3. google如何闭源,重写一个apk?随gms发布,不允许oem编译且预装?

4. 国内策略?目前是完全不受限制?cts只测接口,不管实现,cdd也没有条款要求。

上一篇:C++ 十四课 对象组合


下一篇:是否可以通过终端使用adb连接Android设备?