Android 网络服务介绍
1. 介绍
Android网络服务主要包括如下四个部分
- ConnectivityService: 提供数据连接管理服务,包括移动数据、WIFI、以太网等
- NetworkPolicyManagerService: 提供网络策略管理服务
- NetworkStatsService: 提供网络传输数据统计服务
- NetworkManagementService: 提供对物理网络接口的管理服务

2. NetworkManagementService
NetworkManagementService是重要的网络服务,通过NativeDaemonConnector类建立和netd的联系,实现对物理接口进行操作;它封装了关于接口、网络、防火墙等相关的处理函数,同时还通过Observer提供接口状态(INetworkManagementEventObserver)变更通知

3. NetworkStatsService
NetworkStatsService实现了流量相关的统计,笔者这里不做分析
4. NetworkPolicyManagerService
NetworkPolicyManagerService实现了网络使用上的策略,笔者这里也不做分析
5. ConnectivityService
ConnectivityService实现对系统的所有数据连接进行管理,包括物理连接、虚拟连接以及共享连接
从frameworks/base/core/res/res/values/config.xml的networkAttributes中读取当前系统支持的网络连接类型
6. EthernetService
6.1 初始化

6.2 添加设备

6.3 移除设备

参考:
<Android Netd>
<Android系统网络架构>
<Android网络评分机制>
<ConnectivityService框架初识>
<ConnectivityService处理wifi连接>
<RK3399(Android7.1)--配置wifi和以太网共存>
Android 网络服务介绍的更多相关文章
- Android网络服务发现(NSD)协议的使用
Android的网络服务发现协议(NSD)能够用于在小范围的网络中发现邻近设备上的某个应用.这对于一些社交网络.多人游戏类的应用会很有帮助. Android的NSD的用法大致上分为四种操作: 1. 注 ...
- Web网络服务介绍
Web网络服务也叫WWW(World Wide Web),一般是指能够让用户通过浏览器访问到互联网中文档资源服务.目前提供WEB网络服务的程序有Apache .Nginx 和 IIS 等等,Web ...
- Android网络定位服务定制简述
Android 添加高德或百度网络定位服务 Android的网络定位服务以第三方的APK方式提供服务,由于在国内Android原生自带的com.google.android.gms服务几乎处于不可用状 ...
- 深入学习:如何实现不同Android设备之间相同应用程序的网络服务发现功能
在我们的app中添加网络服务发现功能(NSD)以方便在不同的设备上响应局域网中的请求.这种功能对于多设备之间点对点服务来说很有用,例如多人游戏,多人通话,文件共享等. 一,在网络中注册你的服务 注意: ...
- Openstack 网络服务 Neutron介绍和控制节点部署 (九)
Neutron介绍 neutron是openstack重要组件之一,在以前是时候没有neutron项目. 早期的时候是没有neutron,早期所使用的网络的nova-network,经过版本改变才有个 ...
- Android Google Maps API 网络服务用于网络定位、计算路线、获取经纬度、获取详细地址等
extends:http://blog.csdn.net/h7870181/article/details/12505883 Google Maps API 网络服务 官网地址 : https://d ...
- Openstack 网络服务 Neutron介绍和控制节点部署 (十)
Neutron介绍 neutron是openstack重要组件之一,在以前是时候没有neutron项目. 早期的时候是没有neutron,早期所使用的网络的nova-network,经过版本改变才有个 ...
- 1.Android网络编程-HTML介绍
1.HTML介绍 超文本标记语言(HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言. 在Eclipse下则可以使用自带的浏览器浏览html: 2.H ...
- Android网络编程http派/申请服务
最近的研究Android网络编程知识,这里有一些想法,今晚学习.与您分享. 在实际的应用程序的开发非常需要时间appserver请求数据,那么app怎样发送请求呢?以下的代码就是当中的一种情况.使用H ...
随机推荐
- linux 使用 Python 画图工具matplotlib 提示display 错误
import matplotlib.pyplot as plt Traceback (most recent call last): File "<stdin>", l ...
- springboot底层原理简述
1.maven 子父依赖关系,快速整合第三方框架 2.无配置文件 省略了web.xml,spring.xml,springmvc.xml.mybatis.xml. spring3.0以上提供注解,sp ...
- 基于redis+lua实现高并发场景下的秒杀限流解决方案
转自:https://blog.csdn.net/zzaric/article/details/80641786 应用场景如下: 公司内有多个业务系统,由于业务系统内有向用户发送消息的服务,所以通过统 ...
- GitHub: Oracle RAC Database on Docker 未测试 改天试试
https://github.com/oracle/docker-images/blob/master/OracleDatabase/RAC/OracleRealApplicationClusters ...
- Connection to 天mysql failed. [08001] Could not create connection to database server. Attempted ,报错处理方法
https://blog.csdn.net/myzh215219/article/details/90314345 点击图上的DRIVER,然后点击GO TO DRIVER,之后更改合适的驱动. 我的 ...
- 给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用
一般来说,删除节点可分为两个步骤: 首先找到需要删除的节点: 如果找到了,删除它. 说明: 要求算法时间复杂度为 O(h),h 为树的高度. 示例: root = [5,3,6,2,4,null,7] ...
- stvd使用中的一些问题
1.stm8_interrupt_vector.c 会莫名其妙的自动出现,而且都是在项目目录下.进行如下操作 2.stvd编译时遇到no default placement for segment . ...
- emmet 配置文件
snippets.json(添加自己的或更新现有的片段) preferences.json(更改某些Emmet过滤器和操作的行为) SyntaxProfiles.json(定义生成的HTML / XM ...
- golang学习笔记 ---常用第三方包
包的介绍 包类似Java中概念,jar是源代码管理,分发的最小单位. 目前多数包来自 Github官方包来自 golang.org/x/... 可以在如下网址查询到高频使用的第三方包清单https:/ ...
- .net Dapper 实践系列(3) ---数据显示(Layui+Ajax+Dapper+MySQL)
目录 写在前面 产生问题 解决方案 写在前面 上一小节,我们使用Dapper 里事务实现了一对多关系的添加.这一小节,主要记录如何使用Dapper 实现多表的查询显示. 产生问题 在mvc控制器中查询 ...