ConnectivityManager 与 ConnectivityService

ConnectivityService提供数据连接管理服务,NetworkPolicyManagerService提供网络策略管理服务,NetworkStatsService提供网络传输数据统计服务,NetworkManagementService提供对物理网络接口的管理服务,connectivityService也包括VPN、Tethering对象提供虚拟连接及共享连接管理。
ConnectivityService、NetworkPolicyManagerService、NetworkStatsService三个服务都通过INetworkManagementService接口跨进程访问NetworkManagementService服务,实现与网络接口的交互及信息读取。
NetworkStatsService、NetworkPolicyManagerService两个服务还通过IConnectivityManager接口与connectivityService服务通讯,从connectivityService读取网络连接的信息及打开数据连接的策略控制。
ConnectivityService服务也通过INetworkPolicyManager接口调用NetworkPolicyManagerService的API,读取网络限额信息,登记监听对象。connectivityService服务通过NetworkPolicyManagerService服务的registerListener函数向NetworkPolicyManagerService服务注册一个INetworkPolicyListener.Stub监听桩对象。 NetworkPolicyManagerService通过该监听对象的远程代理接口向ConnectivityService服务传送规则变化通知。

另外ConnectivityService服务的Tethering、VPN对象及NetworkPolicyManagerService、NetworkStatsService服务的内部NetworkAlertObserver类型的对象都直接或间接派生自INetworkManagementEventObserver.Stub,且四个对象都登记为NetworkManagementService的监听对象,NetworkManagementService服务通过INetworkManagementEventObserver接口向这些对象传送网络接口事件通知。

Android 网络管家ConnectivityManager

https://blog.csdn.net/jason_wzn/article/details/71131544

ConnectivityService框架初识

https://blog.csdn.net/sjz4860402/article/details/78532856

Android 网络管家ConnectivityManager

你可能感兴趣的:(ConnectivityManager 与 ConnectivityService)