第1章 概述 1
1.1 Android操作系统介绍 1
1.2 Android软件架构介绍 2
1.3 Android子系统介绍 3
1.4 Android应用程序开发过程 4
小结 5
习题 5
第2章 Android源码开发环境搭建 6
2.1 搭建主机虚拟机环境 6
2.1.1 VMware Workstation介绍 6
2.1.2 安装VMware Workstation虚拟机软件 7
2.1.3 安装Ubuntu操作系统 9
2.1.4 VMware网络配置 15
2.1.5 VMware与主机数据共享 18
2.1.6 VMware添加新硬件 20
2.2 搭建Linux编译环境 22
2.2.1 建立Ubuntu编译环境 23
2.2.2 JDK安装 23
2.2.3 安装Android编译工具 25
2.2.4 下载Android源码 25
2.2.5 下载Linux内核源码 26
2.3 编译Android源码 26
2.3.1 Android源码目录结构 27
2.3.2 编译Android 30
2.3.3 编译Linux内核 33
2.4 搭建Android SDK开发环境 34
2.4.1 下载、安装Eclipse 34
2.4.2 安装ADT插件 34
2.4.3 下载、配置Android SDK工具包 37
2.4.4 下载Android SDK平台 38
2.4.5 通过Android SDK Manager创建模拟器 38
2.4.6 应用程序Framework源码级调试 39
2.5 定制Android模拟器 45
2.6 实训:Android 4.0开发环境搭建及源码编译 47
小结 57
习题 57
第3章 Android系统的启动 59
3.1 Android init进程启动 59
3.2 Android本地守护进程 65
3.2.1 ueventd进程 66
3.2.2 adbd进程 67
3.2.3 servicemanager进程 67
3.2.4 vold进程 68
3.2.5 ril-daemon进程 68
3.2.6 surfaceflinger进程 68
3.3 zygote守护进程与system_server进程 69
3.3.1 zygote守护进程的启动 69
3.3.2 zygoteInit类的功能与system_server进程的创建 73
3.3.3 system_server进程的运行 76
3.3.4 HOME桌面的启动 82
3.4 实训:通过Init.re脚本开机启动Android应用程序 84
小结 86
习题 86
第4章 Android编译系统与定制Android平台系统 87
4.1 Android编译系统 87
4.1.1 Android编译系统介绍 87
4.1.2 Android.mk文件 88
4.2 实训:编译Hello World应用程序 91
4.3 定制Android平台系统 93
4.3.1 添加新产品编译项 93
4.3.2 定制产品的意义及定制要点 99
4.4 实训:定制开机界面 100
4.5 实训:定制开机文字 104
4.6 实训:定制系统开机动画 106
小结 109
习题 110
第5章 JNI机制 111
5.1 JNI概述 111
5.2 JNI原理 112
5.3 JNI中的数据传递 114
5.3.1 JNI基本类型 114
5.3.2 JNI引用类型 115
5.4 Java访问本地方法 116
5.5 JNI访问Java成员 117
5.5.1 取得Java属性ID和方法ID 118
5.5.2 JNI类型签名 120
5.5.3 JNI操作Java属性和方法 121
5.5.4 在本地代码中创建Java对象 123
5.5.5 Java数组在本地代码中的处理 124
5.6 局部引用与全局引用 126
5.6.1 局部引用 127
5.6.2 全局引用 128
5.6.3 在Java环境中保存JNI对象 128
5.7 本地方法的注册 129
5.7.1 JNI_OnLoad方法 129
5.7.2 RegisterNatives方法 130
5.8 实训:JNI调用实训 133
小结 139
习题 140
第6章 Android的对象管理 141
6.1 智能指针 141
6.2 轻量级指针 142
6.3 RefBase类 145
6.4 弱引用指针wp 150
6.5 智能指针的示例 153
小结 154
习题 154
第7章 Binder通信 155
7.1 Android进程空间与Binder机制 155
7.1.1 Android的Binder机制 156
7.1.2 面向对象的Binder IPC 157
7.2 Binder框架分析 158
7.2.1 Binder Driver 158
7.2.2 Open Binder Driver 159
7.2.3 Service Manager与实名Binder 161
7.3 Android Binder协议 162
7.3.1 BINDER_WRITE_READ之写操作 163
7.3.2 BINDER_WRITE_READ之从Binder读出数据 164
7.3.3 struct binder_transaction_data:收发数据包结构 165
小结 167
习题 167
第8章 Android HAL硬件抽象层 168
8.1 Android HAL介绍 168
8.1.1 HAL存在的原因 169
8.1.2 Module架构 169
8.1.3 新的HAL架构 170
8.2 HAL Stub构架 171
8.2.1 HAL Stub框架分析 171
8.2.2 HAL Stub注册 172
8.2.3 HAL Stub操作 174
8.3 Led HAL实例 177
8.3.1 Led HAL框架 177
8.3.2 LED HAL代码架构 179
8.3.3 LED Demo代码分析 180
8.3.4 LedService代码分析 181
8.3.5 Led本地服务代码分析 183
8.3.6 LED HAL深入理解 188
8.4 .实训:基于Android 4.0平板的LED灯控制 188
小结 192
习题 192
第9章 HAL硬件抽象层进阶Sensor HAL实例 193
9.1 Android Sensor架构 193
9.1.1 Android Sensor框架 193
9.1.2 Android Sensor工作流程 194
9.2 Sensor HAL应用程序 198
9.2.1 Sensor HAL应用程序 198
9.2.2 Android Manager机制 198
9.2.3 获得Sensor系统服务 200
9.3 SensorManager 203
9.3.1 本地SensorManager创建 203
9.3.2 获得SensorService服务 207
9.3.3 获得SensorService监听及事件捕获 210
9.3.4 本地封装类SensorDevice 213
9.4 Sensor HAL回顾 217
9.5 实训:SensorDemo的编译 218
小结 219
习题 219