《Android系统级深入开发:移植与调试》是一本全面介绍Android系统级开发的作品,全书以移植和调试为重点。Android具有一个庞大的软件系统,任何开发者都难以掌握系统的每一个细节。因此,如何高效地理解和开发系统,就成了Android系统级别工程师面对的主要问题。本书作者以实际的开发经验为基础,以软件工程思想为指导,完成了本书。本书介绍了从Android开源工程到一个基于实际硬件产品中的主要工作,一方面让读者清晰把握各个子系统的架构,另一方面让读者把握移植这个开发核心环节的要点。

       《Android系统级深入开发:移植与调试》适用人员包括Linux开发人员、移动设备开发人员、Android系统框架层和底层开发人员、有意图深入学习Android的人员、手机研发的公司等。

       《Android系统级深入开发:移植与调试》前言

       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移植重点关注的部分
第13章至第15章介绍连接方面的无线局域网、蓝牙和定位三个子系统,前两者使用Linux中比较标准的方式,定位主要通过GPS进行介绍
第16章介绍电话系统,这也是用于移动设备的核心部分
第17章作为显示加速的OpenGL 3D的移植,体现Android和业界标准规范的接轨
第18章和第19章用于多媒体加速的边界码单元的移植,第18章介绍编结码较下层的标准模块OpenMax插件,第19章介绍OpenMax插件在Android系统中的使用
第20章介绍位块复制部分,主要用于原始图像数据处理的加速
第21章至第24章介绍与移动电话相关的警报器、光、振动器、电池信息这4个Android中较小系统的移植

  本书读者

  本书适合不同类型的读者群,不同类型的读者在学习的时候需要使用不同的方法。作者的建议如下:
对于熟悉Linux内核但不熟悉Android的开发者,应该以驱动程序作为切入点,通过硬件抽象层的实现,将Linux的各个驱动程序应用到Android系统中。
对于熟悉Android系统但不熟悉Linux内核的开发者,向下了解Linux内核,这样既可以更深入地了解Android系统的运作方式,又可以拓展自己的技术领域。
对于经验较多,希望深入研究Android系统的开发者,应该更关注开发的细节,了解移植中调试的要点。

  本书作者

  本书的规划和统筹由中国大陆的韩超完成,韩超常年工作在Linux和Android的开发一线,兼具产品和理论经验。本书内容来源于工作在不同领域Android和Linux开发者多年的经验。韩超和梁泉完成了本书内容的主要部分,众多不同规模的企业开发成果也为本书的编写提供了重要的素材。参与本书编写的还有崔海斌、于仕林、张宇、张超、赵家维、黄亮、沈桢、徐威特、杨钰、马若劼、曹道刚等。广大社区开发者也对本书的成稿作出了贡献。

        《Android系统级深入开发:移植与调试》价格

         报价查询

        《Android系统级深入开发:移植与调试》目录

第1章 Android系统移植开发概述
1.1 Android系统架构和生态系统
1.1.1 Android软件系统
1.1.2 Android的生态系统
1.2 Android移植的概念和方法
1.3 Android移植的主要工作
第2章 Android源代码和开发环境
2.1 开发环境和工具
2.2 Android的代码库
2.3 Android系统代码和编译
2.3.1 获取Android源代码
2.3.2 Android源代码结构
2.3.3 编译Android系统源代码
2.3.4 编译Android结果
2.4 Android Kernel代码和编译
2.4.1 Goldfish内核源代码
2.4.2 MSM内核源代码
2.4.3 Omap内核源代码
2.5 仿真器的运行环境
2.5.1 仿真器的运行
2.5.2 使用附加工具
第3章 Android系统移植的结构和方法
3.1 Android的Linux操作系统
3.1.1 标准的Linux操作系统
3.1.2 Android对Linux 内核的使用
3.1.3 Linux内核空间到用户空间的接口
3.1.4 平台数据和平台驱动
3.2 Android的硬件抽象层
3.2.1 硬件抽象层的地位和功能
3.2.2 硬件抽象层接口方式
3.3 Android中各个部件的移植方式
3.4 辅助性工作和基本调试方法
3.4.1 移植的辅助性工作
3.4.2 调试的方法
第4章 Android的GoldFish内核和驱动
4.1 GoldFish内核概述
4.2 GoldFish体系结构移植
4.3 GoldFish的Android专用驱动和组件
4.3.1 wakelock和earlysuspend
4.3.2 staging中的驱动程序
4.3.3 Ashmem驱动程序
4.3.4 Alarm驱动程序
4.3.5 pmem驱动程序
4.3.6 ADB Garget驱动程序
4.3.7 Android Paranoid网络
4.4 GoldFish的相关设备驱动
4.4.1 Framebuffer的驱动程序
4.4.2 键盘的驱动程序
4.4.3 实时时钟的驱动程序
4.4.4 TTY终端的驱动程序
4.4.5 NandFlash的驱动程序
4.4.6 MMC的驱动程序
4.4.7 电池的驱动程序
4.4.8 EAC音频的驱动程序
第5章 Android的MSM内核和驱动
5.1 MSM处理器概述
5.1.1 MSM概述
5.1.2 MSM适用于Android的Linux内核的结构
5.2 MSM体系结构的移植
5.3 MSM的Android专用驱动和组件
5.4 MSM的mahimahip平台的主要设备驱动
5.4.1 显示的驱动程序
5.4.2 触摸屏的驱动程序
5.4.3 按键和轨迹球的驱动程序
5.4.4 实时时钟的驱动程序
5.4.5 摄像头的驱动程序
5.4.6 无线局域网的驱动程序
5.4.7 蓝牙的驱动程序
5.4.8 DSP相关的驱动程序
5.4.9 高通特有的组件相关内容
第6章 Android的OMAP内核和驱动
6.1 OMAP内核概述
6.1.1 OMAP概述
6.1.2 OMAP适用于Android的Linux内核的结构
6.2 OMAP体系结构的移植
6.2.1 OMAP平台部分的移植
6.2.2 OMAP处理器部分的移植
6.3 OMAP的Android专用驱动和组件
6.4 OMAP的主要设备驱动
6.4.1 显示的驱动程序
6.4.2 摄像头和视频输出的驱动程序
6.4.3 i2c总线驱动程序
6.4.4 键盘的驱动程序
6.4.5 触摸屏的驱动程序
6.4.6 实时时钟的驱动程序
6.4.7 音频的驱动程序
6.4.8 蓝牙的驱动程序
6.4.9 以太网的驱动程序
6.4.10 DSP的驱动程序
第7章 显示系统
7.1 显示系统结构和移植内容
7.1.1 Donut及其之前显示系统的结构
7.1.2 Eclair及其之后显示系统的结构
7.1.3 移植的内容
7.2 移植和调试的要点
7.2.1 Framebuffer驱动程序
7.2.2 Donut及其之前的硬件抽象层
7.2.3 Eclair及其之后的硬件抽象层
7.3 显示部分模拟器的实现方式
7.3.1 Goldfish的framebuffer驱动程序
7.3.2 默认的Gralloc模块的实现
7.4 MSM中的实现
7.4.1 MSM的framebuffer驱动程序
7.4.2 MSM的Gralloc模块的实现
7.5 OMAP中的实现
7.5.1 OMAP的framebuffer驱动程序
7.5.2 OMAP的用户空间的实现
第8章 用户输入系统
8.1 用户输入系统结构和移植内容
8.1.1 用户输入系统的结构
8.1.2 移植的内容
8.2 移植的要点
8.2.1 input驱动程序
8.2.2 用户空间的处理
8.2.3 移植需要注意的情况
8.3 模拟器中的实现
8.3.1 驱动程序
8.3.2 用户空间的配置文件
8.4 MSM中的实现
8.4.1 触摸屏,轨迹球和按键驱动程序
8.4.2 用户空间的配置文件
8.5 OMAP中的实现
8.5.1 触摸屏和键盘的驱动程序
8.5.2 用户空间的配置文件
8.6 虚拟按键的实现
第9章 传感器系统
9.1 传感器系统结构和移植内容
9.1.1 传感器系统的结构
9.1.2 移植的内容
9.2 移植和调试的要点
9.2.1 驱动程序
9.2.2 硬件抽象层的内容
9.2.3 上层的情况和注意事项
9.3 模拟器中的实现
第10章 音频系统
10.1 音频系统结构和移植内容
10.1.1 音频系统的结构
10.1.2 移植的内容
10.2 移植和调试的要点
10.2.1 Audio驱动程序
10.2.2 硬件抽象层的内容
10.2.3 Audio策略管理的内容
10.2.4 上层的情况和注意事项
10.3 通用的Audio系统实现
10.3.1 用桩实现的Audio硬件抽象层
10.3.2 提供Dump功能的Audio硬件抽象层
10.3.3 通用的Audio硬件抽象层
10.4 MSM系统的实现
10.4.1 Audio驱动程序
10.4.2 Audio硬件抽象层
10.5 基于OSS和ALSA的实现方式
10.5.1 OSS驱动程序
10.5.2 基于OSS的硬件抽象层
10.5.3 ALSA驱动程序
10.5.4 基于ALSA的硬件抽象层
第11章 视频输出系统
11.1 视频输出系统结构和移植内容
11.1.1 视频输出系统的结构
11.1.2 移植的内容
11.2 移植和调试的要点
11.2.1 驱动程序
11.2.2 硬件抽象层的内容
11.2.3 上层的情况和注意实现
11.3 Overlay硬件抽象层实现的框架
11.4 OMAP系统的实现
11.4.1 OMAP的视频输出部分的驱动程序
11.4.2 OMAP Overlay 硬件抽象层
第12章 照相机系统
12.1 照相机系统结构和移植内容
12.1.1 照相机系统的结构
12.1.2 移植的内容
12.2 移植和调试的要点
12.2.1 Video for 4Linux驱动程序
12.2.2 硬件抽象层的内容
12.2.3 上层的情况和注意事项
12.2.4 照相机系统的数据流情况
12.3 Camera硬件抽象层桩实现
12.4 MSM平台的Camera实现
12.4.1 MSM平台的Camera驱动程序
12.4.2 MSM平台的Camera硬件抽象层
12.5 OMAP平台的Camera实现
12.5.1 OMAP平台的Camera 驱动程序
12.5.2 OMAP平台的Camera硬件抽象层
第13章 无线局域网系统
13.1 无线局域网系统结构和移植内容
13.1.1 无线局域网系统的结构
13.1.2 移植的内容
13.2 移植和调试的要点
13.2.1 协议和驱动程序
13.2.2 用户空间的内容
13.2.3 上层的情况和调试方法
13.3 OMAP系统的无线局域网实现
13.3.1 Linux内核中的内容
13.3.2 用户空间的实现
第14章 蓝牙系统
14.1 蓝牙系统结构和移植内容
14.1.1 蓝牙系统的结构
14.1.2 移植的内容
14.2 移植和调试的要点
14.2.1 驱动程序
14.2.2 本地代码的配置部分
14.2.3 上层的情况和调试方法
14.3 MSM系统的蓝牙实现
14.3.1 驱动部分
14.3.2 用户空间的部分
第15章 定位系统
15.1 定位系统的系统结构和移植内容
15.1.1 定位系统的系统结构
15.1.2 移植的内容
15.2 移植和调试的要点
15.2.1 驱动程序
15.2.2 硬件抽象层
15.2.3 上层的情况和调试方法
15.3 仿真器的GPS硬件适配层实现
15.4 MSM平台的GPS硬件适配层实现
第16章 电话系统
16.1 电话系统结构和移植内容
16.1.1 电话系统的系统结构
16.1.2 移植的内容
16.2 移植和调试的要点
16.2.1 驱动程序
16.2.2 RIL实现库的接口
16.2.3 数据连接部分
16.2.4 调试方法
16.3 电话部分的RIL参考实现
16.3.1 端口初始化
16.3.2 AT命令处理流程
16.3.3 Event模块
16.3.4 Modem AT命令初始化
16.3.5 请求和响应流程的处理
16.3.6 特定命令类型的实现
第17章 OpenGL 3D引擎
17.1 OpenGL系统结构和移植内容
17.1.1 OpenGL系统的结构
17.1.2 移植的内容
17.2 移植和调试的要点
17.2.1 OpenGL移植层的接口
17.2.2 上层的情况和OpenGL的调试
17.2 Android软件OpenGL的实现
17.3 不同系统中的实现
第18章 OpenMax多媒体引擎
18.1 OpenMax系统结构和移植内容
18.1.1 OpenMax系统的结构
18.1.2 Android OpenMax实现的内容
18.2 OpenMax的接口与实现
18.2.1 OpenMax IL层的接口
18.2.2 OpenMax IL实现的内容
18.2.3 Android中OpenMax的适配层
18.3 OMAP平台OpenMax IL的硬件实现
18.3.1 TI OpenMax IL实现的结构和机制
18.3.2 TI OpenMax IL的核心和公共内容
18.3.3 一个TI OpenMax IL组件的实现
第19章 多媒体系统的插件
19.1 Android多媒体相关结构与移植内容
19.1.1 多媒体处理过程
19.1.2 移植的内容
19.2 OpenCore引擎结构和插件
19.2.1 OpenCore的结构
19.2.2 OpenCore的Node插件机制
19.2.3 OpenMax部分的结构、实现和插件结构
19.2.4 关于媒体输入输出类MediaIO
19.2.5 OpenCore Player的视频显示部分插件
19.3 Stagefright引擎的结构和插件
19.3.1 Stagefright系统结构
19.3.2 Stagefright对Android中OpenMax接口的实现
19.3.3 MediaSource插件机制
19.3.4 OpenMax和VideoRenderer插件机制
19.4 OMAP平台实现的插件
19.4.1 OpenCore的OpenMax插件
19.4.2 OpenCore的视频输出插件
19.4.3 Stagefright的OpenMax和视频输出插件
第20章 位块复制系统
20.1 位块复制结构和移植内容
20.1.1 位块复制系统的结构
20.1.2 移植内容
20.2 移植和调试的要点
20.2.1 驱动程序
20.2.2 硬件抽象层的内容
20.2.3 上层的情况和注意事项
20.3 MSM中的实现
第21章 警报器--实时时钟系统
21.1 警报器--实时时钟结构和移植内容
21.1.1 警报器--实时时钟系统的结构
21.1.2 移植内容
21.2 移植与调试的要点
21.2.1 RTC驱动程序
21.2.2 Alarm驱动程序
21.2.3 上层的情况和注意事项
21.3 模拟器环境中的实现
21.4 MSM平台的实现
第22章 光系统
22.1 光系统结构和移植内容
22.1.1 光系统部分的结构
22.1.2 移植内容
22.2 移植与调试的要点
22.2.1 驱动程序
22.2.2 硬件抽象层的内容
22.2.3 上层的情况和注意事项
22.3 MSM中的实现
22.3.1 驱动程序
22.3.2 硬件抽象层
第23章 振动器系统
23.1 振动器系统结构和移植内容
23.1.1 振动器部分的结构
23.1.2 移植内容
23.2 移植与调试的要点
23.2.1 驱动程序
23.2.2 硬件抽象层的内容
23.2.3 上层的情况和注意事项
23.3 MSM中的实现
第24章 电池系统
24.1 电池系统结构和移植内容
24.1.1 电池系统部分的结构
24.1.2 移植内容
24.2 移植和调试的要点
24.2.1 驱动程序
24.2.2 上层的情况和注意事项
24.3 模拟器中的实现

本文发布:Android开发网
本文地址:http://www.jizhuomi.com/android/book/148.html
2012年8月6日
发布:鸡啄米 分类:Android开发书籍 浏览: 评论:3