标题：现代Android系统级深入开发—移植与调试
基本信息
作者：韩超   梁泉  
出版社：电子工业出版社
ISBN：9787121126093
上架时间：2011-2-18
出版日期：2011 年2月
开本：16开
页码：372
版次：1-1
编辑推荐
从Android开源工程到产品的开发宝典
全面介绍Android中与硬件相关的子系统
按照驱动程序和硬件抽象层两方面把握移植要点
高效粘合Linux系统经验和移动设备应用场景
以三种硬件平台为参考，参考开发环境宜于获得
作译者
韩超，中国大陆资深Linux和移动开发工程师，长期从事一线开发工作，兼具开发实践经验和完备的教育思维模式。韩超是中国大陆较早开发Android系统开发的人员，曾从事系统框架、芯片移植适配和移动产品等开发领域；也曾经引领各种技术人员进入Android领域，并组织参与技术交流。
目录
第1章 android系统移植开发概述 1
1 1 android系统架构和生态系统 1
1 1 1 android软件系统 1
1 1 2 android的生态系统 3
1 2 android移植的概念和方法 4
1 3 android移植的主要工作 5
第2章 android源代码和开发环境 8
2 1 开发环境和工具 8
2 2 android的代码库 9
2 3 android系统代码和编译 9
2 3 1 获取android源代码 9
2 3 2 android源代码结构 12
2 3 3 编译android系统源代码 13
2 3 4 编译android结果 13
2 4 android kernel代码和编译 14
2 4 1 goldfish内核源代码 15
2 4 2 msm内核源代码 15
2 4 3 omap内核源代码 16
2 5 仿真器的运行环境 16
2 5 1 仿真器的运行 16
2 5 2 使用附加工具 18
第3章 android系统移植的结构和方法 20
3 1 android的linux操作系统 20
3 1 1 标准的linux操作系统 20
3 1 2 android对linux 内核的使用 22
3 1 3 linux内核空间到用户空间的接口 24
3 1 4 平台数据和平台驱动 34
3 2 android的硬件抽象层 35
3 2 1 硬件抽象层的地位和功能 35
3 2 2 硬件抽象层接口方式 36
3 3 android中各个部件的移植方式 41
3 4 辅助性工作和基本调试方法 41
3 4 1 移植的辅助性工作 42
3 4 2 调试的方法 46
第4章 android的goldfish内核和驱动 56
4 1 goldfish内核概述 56
4 2 goldfish体系结构移植 58
4 3 goldfish的android专用驱动和组件 59
4 3 1 wakelock和earlysuspend 59
4 3 2 staging中的驱动程序 61
4 3 3 ashmem驱动程序 66
4 3 4 alarm驱动程序 67
4 3 5 pmem驱动程序 67
4 3 6 adb garget驱动程序 68
4 3 7 android paranoid网络 68
4 4 goldfish的相关设备驱动 70
4 4 1 framebuffer的驱动程序 70
4 4 2 键盘的驱动程序 70
4 4 3 实时时钟的驱动程序 71
4 4 4 tty终端的驱动程序 71
4 4 5 nandflash的驱动程序 72
4 4 6 mmc的驱动程序 72
4 4 7 电池的驱动程序 73
4 4 8 eac音频的驱动程序 73
第5章 android的msm内核和驱动 74
5 1 msm处理器概述 74
5 1 1 msm概述 74
5 1 2 msm适用于android的linux内核的结构 77
5 2 msm体系结构的移植 79
5 3 msm的android专用驱动和组件 80
5 4 msm的mahimahip平台的主要设备驱动 81
5 4 1 显示的驱动程序 81
5 4 2 触摸屏的驱动程序 82
5 4 3 按键和轨迹球的驱动程序 82
5 4 4 实时时钟的驱动程序 83
5 4 5 摄像头的驱动程序 83
5 4 6 无线局域网的驱动程序 83
5 4 7 蓝牙的驱动程序 84
5 4 8 dsp相关的驱动程序 84
5 4 9 高通特有的组件相关内容 85
第6章 android的omap内核和驱动 87
6 1 omap内核概述 87
6 1 1 omap概述 87
6 1 2 omap适用于android的linux内核的结构 91
6 2 omap体系结构的移植 92
6 2 1 omap平台部分的移植 92
6 2 2 omap处理器部分的移植 94
6 3 omap的android专用驱动和组件 96
6 4 omap的主要设备驱动 97
6 4 1 显示的驱动程序 97
6 4 2 摄像头和视频输出的驱动程序 98
6 4 3 i2c总线驱动程序 98
6 4 4 键盘的驱动程序 99
6 4 5 触摸屏的驱动程序 99
6 4 6 实时时钟的驱动程序 99
6 4 7 音频的驱动程序 99
6 4 8 蓝牙的驱动程序 100
6 4 9 以太网的驱动程序 100
6 4 10 dsp的驱动程序 100
第7章 显示系统 101
7 1 显示系统结构和移植内容 101
7 1 1 donut及其之前显示系统的结构 102
7 1 2 eclair及其之后显示系统的结构 102
7 1 3 移植的内容 103
7 2 移植和调试的要点 104
7 2 1 framebuffer驱动程序 104
7 2 2 donut及其之前的硬件抽象层 106
7 2 3 eclair及其之后的硬件抽象层 107
7 3 显示部分模拟器的实现方式 112
7 3 1 goldfish的framebuffer驱动程序 112
7 3 2 默认的gralloc模块的实现 113
7 4 msm中的实现 119
7 4 1 msm的framebuffer驱动程序 119
7 4 2 msm的gralloc模块的实现 120
7 5 omap中的实现 126
7 5 1 omap的framebuffer驱动程序 126
7 5 2 omap的用户空间的实现 128
第8章 用户输入系统 129
8 1 用户输入系统结构和移植内容 129
8 1 1 用户输入系统的结构 129
8 1 2 移植的内容 131
8 2 移植的要点 131
8 2 1 input驱动程序 131
8 2 2 用户空间的处理 134
8 2 3 移植需要注意的情况 139
8 3 模拟器中的实现 141
8 3 1 驱动程序 141
8 3 2 用户空间的配置文件 141
8 4 msm中的实现 142
8 4 1 触摸屏，轨迹球和按键驱动程序 142
8 4 2 用户空间的配置文件 144
8 5 omap中的实现 144
8 5 1 触摸屏和键盘的驱动程序 144
8 5 2 用户空间的配置文件 146
8 6 虚拟按键的实现 146
第9章 传感器系统 148
9 1 传感器系统结构和移植内容 148
9 1 1 传感器系统的结构 148
9 1 2 移植的内容 150
9 2 移植和调试的要点 150
9 2 1 驱动程序 150
9 2 2 硬件抽象层的内容 151
9 2 3 上层的情况和注意事项 153
9 3 模拟器中的实现 157
第10章 音频系统 162
10 1 音频系统结构和移植内容 162
10 1 1 音频系统的结构 162
10 1 2 移植的内容 164
10 2 移植和调试的要点 164
10 2 1 audio驱动程序 164
10 2 2 硬件抽象层的内容 164
10 2 3 audio策略管理的内容 168
10 2 4 上层的情况和注意事项 169
10 3 通用的audio系统实现 170
10 3 1 用桩实现的audio硬件抽象层 172
10 3 2 提供dump功能的audio硬件抽象层 174
10 3 3 通用的audio硬件抽象层 177
10 4 msm系统的实现 178
10 4 1 audio驱动程序 178
10 4 2 audio硬件抽象层 180
10 5 基于oss和alsa的实现方式 183
10 5 1 oss驱动程序 183
10 5 2 基于oss的硬件抽象层 184
10 5 3 alsa驱动程序 185
10 5 4 基于alsa的硬件抽象层 186
第11章 视频输出系统 190
11 1 视频输出系统结构和移植内容 190
11 1 1 视频输出系统的结构 191
11 1 2 移植的内容 192
11 2 移植和调试的要点 192
11 2 1 驱动程序 192
11 2 2 硬件抽象层的内容 192
11 2 3 上层的情况和注意实现 195
11 3 overlay硬件抽象层实现的框架 199
11 4 omap系统的实现 200
11 4 1 omap的视频输出部分的驱动程序 200
11 4 2 omap overlay 硬件抽象层 202
第12章 照相机系统 205
12 1 照相机系统结构和移植内容 205
12 1 1 照相机系统的结构 206
12 1 2 移植的内容 207
12 2 移植和调试的要点 207
12 2 1 video for 4linux驱动程序 207
12 2 2 硬件抽象层的内容 210
12 2 3 上层的情况和注意事项 215
12 2 4 照相机系统的数据流情况 219
12 3 camera硬件抽象层桩实现 222
12 4 msm平台的camera实现 226
12 4 1 msm平台的camera驱动程序 226
12 4 2 msm平台的camera硬件抽象层 227
12 5 omap平台的camera实现 228
12 5 1 omap平台的camera驱动程序 228
12 5 2 omap平台的camera硬件抽象层 229
第13章 无线局域网系统 230
13 1 无线局域网系统结构和移植内容 230
13 1 1 无线局域网系统的结构 231
13 1 2 移植的内容 232
13 2 移植和调试的要点 232
13 2 1 协议和驱动程序 232
13 2 2 用户空间的内容 233
13 2 3 上层的情况和调试方法 233
13 3 omap系统的无线局域网实现 235
13 3 1 linux内核中的内容 235
13 3 2 用户空间的实现 236
第14章 蓝牙系统 238
14 1 蓝牙系统结构和移植内容 238
14 1 1 蓝牙系统的结构 239
14 1 2 移植的内容 240
14 2 移植和调试的要点 240
14 2 1 驱动程序 240
14 2 2 本地代码的配置部分 242
14 2 3 上层的情况和调试方法 244
14 3 msm系统的蓝牙实现 245
14 3 1 驱动部分 245
14 3 2 用户空间的部分 247
第15章 定位系统 248
15 1 定位系统的系统结构和移植内容 248
15 1 1 定位系统的系统结构 248
15 1 2 移植的内容 250
15 2 移植和调试的要点 250
15 2 1 驱动程序 250
15 2 2 硬件抽象层 251
15 2 3 上层的情况和调试方法 253
15 3 仿真器的gps硬件适配层实现 256
15 4 msm平台的gps硬件适配层实现 257
第16章 电话系统 260
16 1 电话系统结构和移植内容 260
16 1 1 电话系统的系统结构 260
16 1 2 移植的内容 262
16 2 移植和调试的要点 262
16 2 1 驱动程序 262
16 2 2 ril实现库的接口 264
16 2 3 数据连接部分 266
16 2 4 调试方法 267
16 3 电话部分的ril参考实现 268
16 3 1 端口初始化 268
16 3 2 at命令处理流程 269
16 3 3 event模块 270
16 3 4 modem at命令初始化 272
16 3 5 请求和响应流程的处理 272
16 3 6 特定命令类型的实现 274
第17章 opengl 3d引擎 276
17 1 opengl系统结构和移植内容 276
17 1 1 opengl系统的结构 277
17 1 2 移植的内容 283
17 2 移植和调试的要点 283
17 2 1 opengl移植层的接口 283
17 2 2 上层的情况和opengl的调试 285
17 2 android软件opengl的实现 288
17 3 不同系统中的实现 290
第18章 openmax多媒体引擎 292
18 1 openmax系统结构和移植内容 292
18 1 1 openmax系统的结构 293
18 1 2 android openmax实现的内容 297
18 2 openmax的接口与实现 297
18 2 1 openmax il层的接口 297
18 2 2 openmax il实现的内容 302
18 2 3 android中openmax的适配层 302
18 3 omap平台openmax il的硬件实现 304
18 3 1 ti openmax il实现的结构和机制 304
18 3 2 ti openmax il的核心和公共内容 306
18 3 3 一个ti openmax il组件的实现 307
第19章 多媒体系统的插件 310
19 1 android多媒体相关结构与移植内容 310
19 1 1 多媒体处理过程 311
19 1 2 移植的内容 312
19 2 opencore引擎的结构和插件 313
19 2 1 opencore的结构 313
19 2 2 opencore的node插件机制 314
19 2 3 openmax部分的结构、实现和插件结构 316
19 2 4 关于媒体输入输出类mediaio 322
19 2 5 opencore player的视频显示部分插件 325
19 3 stagefright引擎的结构和插件 326
19 3 1 stagefright系统结构 326
19 3 2 stagefright对android中openmax接口的实现 328
19 3 3 mediasource插件机制 328
19 3 4 openmax和videorenderer插件机制 330
19 4 omap平台实现的插件 332
19 4 1 opencore的openmax插件 333
19 4 2 opencore的视频输出插件 334
19 4 3 stagefright的openmax和视频输出插件 336
第20章 位块复制系统 339
20 1 位块复制结构和移植内容 339
20 1 1 位块复制系统的结构 339
20 1 2 移植内容 340
20 2 移植和调试的要点 340
20 2 1 驱动程序 340
20 2 2 硬件抽象层的内容 341
20 2 3 上层的情况和注意事项 342
20 3 msm平台中的实现 343
第21章 警报器——实时时钟系统 346
21 1 警报器——实时时钟结构和移植内容 346
21 1 1 警报器——实时时钟系统的结构 346
21 1 2 移植内容 347
21 2 移植与调试的要点 348
21 2 1 rtc驱动程序 348
21 2 2 alarm驱动程序 349
21 2 3 上层的情况和注意事项 349
21 3 模拟器环境中的实现 351
21 4 msm平台的实现 351
第22章 光系统 354
22 1 光系统结构和移植内容 354
22 1 1 光系统部分的结构 354
22 1 2 移植内容 355
22 2 移植与调试的要点 356
22 2 1 驱动程序 356
22 2 2 硬件抽象层的内容 356
22 2 3 上层的情况和注意事项 357
22 3 msm中的实现 359
22 3 1 驱动程序 359
22 3 2 硬件抽象层 359
第23章 振动器系统 361
23 1 振动器系统结构和移植内容 361
23 1 1 振动器部分的结构 361
23 1 2 移植内容 362
23 2 移植与调试的要点 363
23 2 1 驱动程序 363
23 2 2 硬件抽象层的内容 363
23 2 3 上层的情况和注意事项 364
23 3 msm中的实现 365
第24章 电池系统 367
24 1 电池系统结构和移植内容 367
24 1 1 电池系统部分的结构 367
24 1 2 移植内容 368
24 2 移植和调试的要点 368
24 2 1 驱动程序 368
24 2 2 上层的情况和注意事项 369
24 3 模拟器中的实现 371
前言
Android系统是目前最为流行的手机系统之一，本书作者在推出了全面介绍Android系统的《Android系统原理及开发要点详解》一书，同时出版了繁体版，并将版权成功输出到韩国，韩文版将在2011年7月出版。在本书出版之后，笔者切实感到越来越多的开发人员和企业在关注Android系统的各个方面。
Android系统是开源的，它的一个比较大的优势就是可以移植到各个不同的硬件平台上。“移植”是Android系统的精华所在，也是Android开发中的难点兼重点。
本书《Android系统级深入开发——移植与调试》出版的主要目的是分享开发经验，帮助众多开发者快速地掌握Android系统在不同硬件平台移植的方法。帮助工程师以最快的速度、最小的开销、最轻的工作量，让Android系统高效地运行在更多的硬件上。
本书特点
本书紧紧抓住了Android系统移植与调试的主题，从开发者的角度出发，其特点主要包括以下几个方面：
本书使用的代码以Android的开源工程为主，硬件也是比较常见的设备，保证读者可以很容易地获得开发环境。
根据Android系统自身的固有特点，从Linux内核中的驱动和硬件抽象层两个着手点作为切入点。
按照Linux的开发思路，从驱动程序的角度出发，让具有Linux开发经验的工程师，可以更快地熟悉主要用于移动设备开发的Android系统。
从模拟器、高通的MSM平台、德州仪器的OMAP平台这三种硬件平台出发，全面介绍，不以偏概全，既把握共同点，也突出差异。
对于Android中规模和难度各不相同的子系统，抓住它们和硬件相关的共同点，采取同样的格式和思路进行介绍，体现了“从特殊到一般”的理念。
简要介绍各个子系统的框架，并列出代码路径，对移植部分的主要调用部分加强提示，让读者更全面地把握系统。
本书内容
本书分成24章，各章的内容如下所示：
第1章和第2章：概要部分 介绍Android的系统的大结构、移植的主要工作，开发环境的构建方法
第3章：全书的总纲 全面介绍Linux系统的驱动程序，突出介绍Android中硬件抽象层的不同实现方式，展示Android移植的各个方面
续表
第4章至第6章：Linux内核方面 主要介绍用于模拟器的Goldfish、MSM的mahimahip平台和OMAP的Zoom平台的3种Linux内核，介绍了不同体系结构的移植，与硬件无关的Android专用驱动，并简单介绍了各个硬件设备的驱动程序
第7章和第8章：基本GUI的系统 包括显示输出和用户输入两个部分，是每个系统最优先移植的部分
第9章：传感器系统 体现Android系统最经典的移植方式
第10章至第12章：多媒体的输入输出环节 是Android移植重点关注的部分