《Android系统级深入开发:移植与调试》是电子工业出版社2011 年2月出版的图书,作者是韩超、梁泉。
基本介绍
- 书名:Android系统级深入开发:移植与调试
- 作者:韩超 梁泉
- ISBN:9787121126093
- 页数:372
- 出版社:电子工业出版社
- 出版时间:2011 年2月
- 开本:16开
编辑推荐
从Android开源工程到产品的开发宝典
全面介绍Android中与硬体相关的子系统
按照驱动程式和硬体抽象层两方面把握移植要点
高效粘合Linux系统经验和移动设备套用场景
以三种硬体平台为参考,参考开发环境宜于获得
内容简介
本书是一本全面介绍android系统级开发的作品,全书以移植和调试为重点。android具有一个庞大的软体系统,任何开发者都难以掌握系统的每一个细节。因此,如何高效地理解和开发系统,就成了android系统级别工程师面对的主要问题。本书作者以实际的开发经验为基础,以软体工程思想为指导,完成了本书。本书介绍了从android开源工程到一个基于实际硬体产品中的主要工作,一方面让读者清晰把握各个子系统的架构,另一方面让读者把握移植这个开发核心环节的要点。
本书适合linux开发人员、移动设备开发人员、android系统框架层和底层开发人员、有意图深入学习android的人员、以及从事手机研发的读者阅读
作译者
本书提供作译者介绍
韩超,中国大陆资深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