内容简介
第1章 Android系统服务开发
1.1 Android系统服务开发简介
1.1.1 Android的出现
1.1.2 移动设备的硬件结构
1.1.3 Android硬件服务开发概要
1.1.4 本书的叙述方向
1.2 IPC
1.2.1 Android的进程
1.2.2 进程的fork()及exec()函数
1.2.3 Linux内核的IPC
1.2.4 Linux管道
1.2.5 网络套接字
1.2.6 UNIX套接字
1.3 I/O多路复用
1.3.1 服务器端/客户端模型
1.3.2 使用select()函数的I/O多路复用
1.3.3 select()函数示例
1.4 ITC
1.4.1 多线程
1.4.2 Android的ITC模型
1.4.3 消息
1.4.4 Looper
1.4.5 Handler
1.4.6 HandlerThread
1.5 守护进程服务分析
1.5.1 普通守护进程程序的结构
1.5.2 生成init进程的守护进程服务
1.5.3 守护进程与多客户端间的通信
第2章 RIL
2.1 RIL简介
2.1.1 RIL简介
2.1.2 AP与调制解调器间的相互作用
2.1.3 AP与调制解调器间的通信:RIL命令
2.2 RIL结构
2.2.1 Android通信栈
2.2.2 Android RIL的调制解调器控制模型
2.3 RIL守护进程的结构
2.3.1 RIL守护进程的构成要素
2.3.2 RIL事件
2.3.3 RIL事件调度程序
2.4 RIL守护进程初始化
2.4.1 守护进程的启动
2.4.2 RIL守护进程初始化过程
2.4.3 动态加载Vendor RIL库
2.4.4 生成RIL事件调度程序
2.4.5 Vendor RIL初始化
2.4.6 注册Vencor RIL的Radio控制函数及生成IO事件专用套接字
2.5 RIL事件处理机制
2.5.1 RIL事件调度程序的运行原理
2.5.2 RIL事件处理回调函数
2.5.3 RIL req处理机制
2.5.4 RIL resp处理机制
2.5.5 RIL ind处理机制
第3章 通信框架
3.1 通信框架概要
3.1.1 通信框架的功能
3.1.2 通信框架提供的服务
3.2 通信框架的结构
3.2.1 通信框架的分层构成要素
3.2.2 PhoneApp类
3.2.3 PhoneProxy类
3.2.4 Phone接口
3.2.5 Radio接口
3.2.6 state tracker类
3.2.7 CallManager类
3.2.8 不同版本中通信框架的变化(1.5~4.2)
3.3 通信框架的初始化
3.3.1 Phone应用程序的生成
3.3.2 通信框架的初始化
3.3.3 RILJava的初始化
3.4 通信框架的服务模型
3.4.1 通信框架的服务结构
3.4.2 通信框架的服务req/resp处理机制
3.4.3 通信框架的服务ind处理机制
3.5 RILJava的RIL req处理示例
3.5.1 Phone应用程序的通信框架API调用
3.5.2 调用RILJava的RadioAPI
3.5.3 生成RILJava的RILRequest对象
3.5.4 向RILSender线程传送RILRequest对象
3.5.5 发送RILSender线程的RIL req
3.6 RILJava的RIL resp处理示例
3.6.1 从RIL守护进程接收RIL resp
3.6.2 发送RILReceiver线程的服务resp消息
3.6.3 处理客户端对象handler的服务resp消息
3.7 RILJava的RIL ind处理示例
3.7.1 注册Subscriber对象的服务ind
3.7.2 接收RILReceive线程的RIL ind
3.7.3 调用RILReceive线程的notifyRegistrant()方法
3.7.4 处理Subscriber对象handler的服务ind消息
第4章 USIM
4.1 USIM简介
4.1.1 智能卡的定义
4.1.2 智能卡的启动过程
4.1.3 使用APDU的智能卡通信
4.1.4 USIM的由来
4.1.5 USIM的主要功能
4.2 USIM的数据结构及运行
4.2.1 USIM的数据结构
4.2.2 USIM的移动通信相关EF
4.2.3 通过APDU读取EF的过程
4.3 Android USIM软件结构
4.3.1 调制解调器
4.3.2 RIL
4.3.3 通信框架
4.3.4 Android应用程序
4.4 Android USIM初始化及运行
4.4.1 UICC初始化及UICC相关对象的生成
4.4.2 系统启动后调制解调器通电
4.4.3 进入SIM_READY状态
4.4.4 查看USIM状态及执行EF读取
4.4.5 分析通信框架的EF读取
4.5 Android USAT初始化及运行
4.5.1 USAT初始化
4.5.2 通过Display Text分析Proactive Command
4.5.3 Android的Proactive Command处理
第5章 Android电源管理
5.1 电源管理概述
5.1.1 电功率
5.1.2 了解电池
5.1.3 默认电源状态
5.1.4 Android电源管理的作用
5.2 Android电源管理的结构
5.2.1 Android电源管理的层级结构
5.2.2 Power Manager
5.2.3 Power Manager Service
5.2.4 本地空间
5.2.5 内核空间
5.2.6 Android电源管理主要方法调用过程
5.3 Power Manager Service的初始化
5.3.1 Power Manager Service的类结构及方法
5.3.2 生成并注册Power ManagerService
5.3.3 Power Manager Service初始化:init()方法
5.3.4 Power Manager Service初始化:systemReady()方法
5.4 Power Manager Service的主要操作
5.4.1 Power Manager Service状态
5.4.2 决定Power Manager Service状态
5.4.3 屏幕亮度时间的结构
5.4.4 根据屏幕亮度时间控制屏幕亮度
5.4.5 屏幕亮度转换的结构要素
5.4.6 屏幕亮度转换操作
5.4.7 Wake Lock标记与标签
5.4.8 生成Wake Lock
5.4.9 获取Wake Lock
5.4.10 解除Wake Lock
5.5 间接应用电源管理服务
5.5.1 PowerManager类提供的方法
5.5.2 Power Manager类的实例化及获取
5.5.3 获取WakeLock:PARTIAL_WAKE LOCK
5.5.4 Wake Lock获取示例:PARTIAL_WAKE_LOCK
5.5.5 获取Wake Lock:屏幕亮度控制标记
5.5.6 Wake Lock获取示例:FULL_WAKE_LOCK
5.5.7 获取Wake Lock:ACQUIRE_CAUSES_WAKEUP
5.5.8 解除Wake Lock:PARTIAL_WAKE_LOCK
5.5.9 解除Wake Lock:屏幕亮度控制标记
5.5.10 解除Wake Lock:ON_AFTER_RELEASE
5.6 直接应用 Power Manager Service
5.6.1 屏幕亮度设置
5.6.2 Poke Lock
5.7 不应用 Power Manager Service的Wake Lock
第6章 Android内核电源管理
6.1 Linux内核电源管理
6.1.1 APM与ACPI
6.1.2 设备电源管理
6.2 Android内核电源管理
6.2.1 Android内核修订内容
6.2.2 kobject与sysfs文件系统
6.2.3 生成用于电源管理的sysfs文件
6.3 电源管理初始化
6.4 Early Suspend
6.4.1 Early Suspend结构体与注册
6.4.2 Early Suspend操作
6.5 Wake Lock
6.5.1 Wake Lock结构
6.5.2 生成Wake Lock
6.5.3 激活Wake Lock
6.5.4 禁用Wake Lock
6.6 Suspend
6.6.1 执行Suspend
6.6.2 准备Suspend
6.6.3 进入Suspend
6.7 Resume
6.7.1 Early Resume
6.7.2 设备Resume
6.7.3 Resume完成
6.8 Late Resume
6.9 Surface Flinger与内核之间的相互操作
6.9.1 屏幕On(开)状态到Off(关)状态的转换
6.9.2 屏幕Off(关)状态到On(开)状态的转换
索引