Android 9.0 网络架构
Posted Mrsongs的心情杂货铺
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 9.0 网络架构相关的知识,希望对你有一定的参考价值。
logcat -v time -s “EthernetTracker” “EthernetNetworkFactory” “IpClient” “ConnectivityService” “WifiStateMachine”
网卡 up 的流程:
Netd:Netd一方面接收处理内核上报的网络状态信息然后将相关指令发送给上层,另外一方面接收上层传递下来的指令执行对应的命令。Netd 的代码位于system/netd 下面。
NetworkManagementService: 1、NetdCallbackReceiver 继承 INativeDaemonConnectorCallbacks 接口去接收Netd 上报的网卡端口断开、连接状态变化等事件,并且作为发布者通过NetworkManagementEventCallback观察者模式发布出去。所有的观察者例如IPClient/EthernetTracker 都会收到网络端口的变化进行状态更新。
EthernetTracker:1、通过观察者模式的接口InterfaceObserver 监听NetworkManagementService网卡变化。网卡up上来后会先判断NetworkFactory 中没有 这个网卡,没有的话就会添加该网卡到网络路由中。这里会获取 hwAddress ,NetworkCapabilities、IpConfiguration(为空在创建默认)然后 在 NetworkFactory 中添加 这个网卡 interface。
EthernetNetworkFactory:NetworkFactory 相当于网络运营商,当一个网卡从netd up上来的时候就会创建一个NetworkFactory,并且注册到CS 中,它的本质是一个handler ,与CS 通过Asynchanel 通讯。
NetworkAgent:在NetworkFactory 中IPClient 中的回调如果IP 分配成功就会 被创建,实例化的时候就会注册到CS中,是网络代理。
以上是关于Android 9.0 网络架构的主要内容,如果未能解决你的问题,请参考以下文章
Android 9.0/P(android p指安卓9.0版本) okhttp3网络请求出错