第十一篇 ANDROID 系统网络连接和管理机制与架构

 网络连接功能介绍

          ANDROID 系统网络连接和管理服务由四个系统服务ConnectivityService、NetworkPolicyManagerService、NetworkManagementService、NetworkStatsService共同配合完成网络连接和管理功能,四个服务只有ConnectivityService、NetworkPolicyManagerService两个服务通过NetworkPolicyManager、ConnectivityManager两个客户端对象对应用程序提供对外SDK接口,而NetworkManagementService、NetworkStatsService没有对外提供SDK接口,但设置应用程序可以通过获取系统服务接口使用NetworkManagementService、NetworkStatsService服务.

       四个服务之间的关系类图如下:

        

                                                     图网络连接系统类图

 

          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接口向这些对象传送网络接口事件通知。

       NetworkPolicyManagerService维护网络使用策略,策略可以从一个策略文件读取(策略文件保存在系统目录下的netpolicy.xml文件中)。也可以通过NetworkPolicyManager对外提供的设置策略接口(setNetworkPolicies及setUidPolicy)进行设置,NetworkPolicyManagerService能够根据这些设置或从策略文件中读取的策略控制网络连接。另外NetworkPolicyManagerService还具有动态调节网络连接限额及动态设置网络连接的功能,动态调节网络连接限额机制是通过INetworkStatsService访问NetworkStatsService服务获得上面设置或读取的策略匹配的网络连接类型的传输统计信息(NetworkPolicyManagerService采用NetworkTemplate进行网络连接类型的匹配),并根据这些

  • 10
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值