您的位置:首页 > 百科 > 正文

Android系统级深入开发

《Android系统级深入开发--移植与调试》是2011来自年2月出版的一本图书,作者是韩超。 本书介绍了从Android开源工程到一个基于实际硬件产360百科品中的主要工作。

  • 书名 Android系统级深入开发--移植与调试
  • 作者 韩超、梁泉
  • 出版时间 2011年2月
  • 定价 55 元
  • ISBN 9787121126093

传语

  从Android开源工程到产品的开发宝典

  全面介绍Android中与硬件相关的子系统

  按照驱动程序和硬件抽象层两方面把握移植要点

  高效粘合Linux系统经验和移动设备应用场景

  以三种硬件平台为参考,参考开发环境宜来自于获得

作者简介

  韩 超乡输,中国大陆资深Linux和移动开发工程师,360百科长期从事一线开发工作,伟压利兼具开发实践经验着欢面苗简走善和完备的教育思维模式。韩超是中国大陆较早开发Android系统开发的人员,曾从事系统框架、芯片移植适配和移动产品等开发领域;也曾经引土爱消通领各种技术人员进入Andr孙写啊华察已义故oid领域,并组条环足势除织参与技术交流。

内容简介

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

  本书适合Linux开发人员、移动设备开发人员、Android系统框架层和底层它款宁系模证过高形立混开发人员、有意图深入学习Android的人员、以及从事手机研发的读者阅读

前言

  Android系统是目前最为流行的手机系统之一,本书作者在推出了全面介绍Android系统的《Android系统原理及开发要点详解》一书,同时出版了繁体版,并将版权成功输出到韩国,韩文版将在2011年7月出版。在本书出版之后,笔者切实感到越来越多的开发人员和企业在关注Android系统的各个方面。

  Android系统是开源的,它的一个比较大的优势就是可以移植到各氢护花己妈肥必官个不同的硬件平台上。"移植"是Android系统的精华所在,也是Android开发中的难点兼重点。

  本书《An息道路四富droid系统级深入开发--移植与调试》出版的主要目的是分享开发经验,帮助众多开发者快速地掌更杂兴弱额讲握Android系统在不同硬件平台移植的方法。帮助工程师以最快的速度、最小的开销、最轻的工作量,让Android系统高效地运行在更多的硬件上。

本书特点

  本书紧紧抓住了Android系统移植与调试的主题,从开发者的压七算地断角度出发,其特点主要包括以下几个方面:

  本书使用的代码以Android的开源工程为主,硬件也是比较常见的设备,保证读者可以很容易地获得开发环境。

  根据An与溶燃马droid系统自身的固有特点,从Linux内核中的驱动和硬件抽象层两个着手点作为切入点。

  按照Linux的开发思路,从驱动程序的角度出发,让具有Linux开发经验的工程师,可以更快地熟悉主要用于移动设备开发的Android系统。

  从模拟器、高通的MSM平台、德州仪值走率置九没煤称器的OMAP平台这三种硬件平台出发,全面介绍,不以偏概全,既把握共同点,也突出差异。

  对于Android中规模和难度各不相同的子系统,抓住它们和硬件相关的共同点,采取同样的格式和思路进行介绍,体现了"从特殊到一般"的理念。

  简要介绍各个子系统的框架,并列出代码路径,对移植部分的主要调用部分加强提示,让读者更全面地把握系统。

本书内容

  本书分成24章,各章的内容如下所示:

  第1章和第2章:概要部分 介绍Android的系统的大结构、移植的主要工作,开发环境的构建方法

零司演己著  第3章:全书的总纲 全面介绍Linu除见落x系统的驱动程序,突出介绍Android中硬件抽象层的不同实现方式,展示Android移植的各个方面

  续表

  第4章至第6章:Linux内核方面 主要介绍用于模拟器的Goldfish、MSM的mahimahip平台和OMAP的Zoom平台的3种Linux内核,介绍了不同体系结构的移植,与硬件无关的Android专用驱动,并简单介绍了各个硬件设备的驱动程序

  第7章和第8章:基本GUI的系统 包括显示输出和用户输入两个部分,是每个系统最优察哪先兰新先移植的部分

  第氧能诗齐照孙五弱9章:传感器系统 体现Andr呼罗oid系统最经典的移植方式

  第10章至第12章:多媒体的输入输出环节 是Android移植重点关注的部分

  第13章至第15章:连接系统 介绍连接方面的无线局域网、蓝牙和定位三个子系统,前两者使用Linux中比较标准的方式,定位主要通过GPS进行介绍

  第16章:电话系统 介绍电话系统,这也是用于移动设备的核心部分

  第17章:OpenGL 作为显示加速的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开发者多年的经验。韩超和梁泉完成了本书内容的主要部分,众多不同规模的企业开发成果也为本书的编写提供了重要的素材。参与本书编写的还有崔海斌、于仕林、张宇、张超、赵家维、黄亮、沈桢、徐威特、杨钰、马若劼、曹道刚等。广大社区开发者也对本书的成稿作出了贡献。

目录

  第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

发表评论

评论列表