Vector Blog

写写看看记记 , be happy!

Bluetooth 之 A2DP

1. A2DP介绍 A2DP全名是Advanced Audio Distribution Profile 蓝牙音频传输协议 ,A2DP定义了ACL(Asynchronous Connectionless 异步无连接)信道上传送单声道或立体声等高质量音频信息的协议和过程 。 目前 A2DP 的最新版本为 1.3, 相关文档可以到 bluetooth.org 查看。 1.1 简介 Sou...

generic netlink

1. 简介 由于netlink协议最多支持32个协议簇,到Linux4.1的内核中已经使用其中21个,对于用户需要定制特殊的协议类型略显不够 , 为此Linux设计了 generic netlink 通用Netlink协议簇,用户可在此之上定义更多类型的子协议。 generic netlink支持1024(前10个保留不用)个子协议号,弥补了netlink协议类型较少的缺陷。 gener...

netlink

1. Netlink 简介 什么是Netlink?Netlink是linux提供的用于内核和用户态进程之间的通信方式。但是注意虽然Netlink主要用于用户空间和内核空间的通信,但是也能用于用户空间的两个进程通信。只是进程间通信有其他很多方式,一般不用Netlink。除非需要用到Netlink的广播特性时。 一般来说用户空间和内核空间的通信方式有三种:/proc、ioctl、Netlin...

cfg80211 & wext

1. 简介 Linux 平台目前常用针对无线网络设备的API有两套 wext (Wireless Extensions) 和 nl80211 & cfg80211 , 其主要区别是 wext 通过 ioctl 的方式来控制无线网卡驱动, 后者使用 netlink . 这里主要介绍 nl80211 和 cfg80211 , 其中 , cfg80211用于驱动开发, 而 nl8021...

wifi architectrue 简介

Android 的 wifi 结构主要可以分为两个部分 数据包的收发 无线网络的控制 数据传输 在 Linux 中网络通信都是通过 socket 来操作 , 其中会经过 系统调用 <=> 协议无关层 <=> 网络协议 <=> 设备无关层 <=> 设备驱动 从设备无关层是怎样到设备的驱动呢, 这里就涉及到网络...

Android Network Management (1) ConnectivityService

在开机过程中 systemserver 中会有如下 4 个service 启动, 这4个系统服务管理和统计Android network ConnectivityService , 提供数据连接管理服务 NetworkPolicyManagerService , 提供网络策略管理服务 NetworkManagementService , 提供对物理网络接口的管理服务 Ne...

Android APP Standby

在 Android M 的 MTBF 测试中有一项检查 wifi 连接的测试 , 检测方法是获取 NetworkInfor 中的 State . 这一项测试会出现一个问题: 偶发测试一段时间后 wifi 确实有连上的情况下测试 fail , 打开 debug log 会发现后台测试 service 在获取 NeteorkInfor 的时候 : V NetworkPolicy: up...

Android Alarm in Doze mode

Whitelist in Alarm Service DeviceIdleController 中会有两处设置 Alarm 的白名单: mLocalAlarmManager = getLocalService(AlarmManagerService.LocalService.class); public void onBootPhase(int phase) { ...

Android Doze mode

大部分内容来自于 http://blog.csdn.net/gaugamela/article/details/52981984 代码基本上都在 /frameworks/base/services/core/java/com/android/server/DeviceIdleController.java DeviceIdleController 作为一个系统级服务在开机时由 Syste...

Android 省电模式

流程分析 UI入口为 : Settings -> Battery -> Battery saver, 通过一个 switch 控件来控制开关 ./packages/apps/Settings/src/com/android/settings/fuelgauge/BatterySaverSettings.java public void onSwitchChanged(...