第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