计算机书籍控

Android系统级深入开发 移植与调试

   《Android系统级深入开发:移植与调试》:从Android开源工程到产品的开发宝典、全面介绍Android中与硬件相关的子系统、按照驱动程序和硬件抽象层两方面把握移植要点、高效粘合LinuX系统经验和移动设备应用场景、以三种硬件平台为参考,参考开发环境易于获得。

目录


第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系统级深入开发 移植与调试