当前位置:首页 > 工业技术
Android底层接口与驱动开发技术详解
Android底层接口与驱动开发技术详解

Android底层接口与驱动开发技术详解PDF电子书下载

工业技术

  • 电子书积分:16 积分如何计算积分?
  • 作 者:陈强编著
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2012
  • ISBN:9787113147938
  • 页数:548 页
图书介绍:本书介绍了Android技术的底层接口和驱动程度的开发技术,并通过综合实例把所有模块化的应用衔接起来,构成源于实践的真实应用。尤其是书中所讲的显示应用驱动、传感器驱动、传输系统驱动、OpenGL 3D引擎和OpenMax引擎接口驱动等,都是在目前和未来可预见的实际应用中极其重要的关键技术 。
《Android底层接口与驱动开发技术详解》目录

第1篇 基础篇 2

第1章 Android概述 2

1.1 智能手机世界 2

1.1.1 何谓智能手机 2

1.1.2 当前主流的智能手机系统 3

1.2 Android的巨大优势 4

1.2.1 系出名门 4

1.2.2 强大的开发团队 4

1.2.3 诱人的奖励机制 5

1.3 搭建Android开发环境 6

1.3.1 安装Android SDK的系统要求 6

1.3.2 安装JDK、Eclipse、Android SDK 6

1.3.3 设定Android SDK Home 15

1.3.4 验证开发环境 16

1.3.5 创建Android虚拟设备 18

1.3.6 常见的几个问题 19

1.4 Android模拟器 24

1.4.1 Android模拟器简介 24

1.4.2 模拟器和真机究竟有何区别 24

1.4.3 模拟器简单总结 25

第2章 在驱动开发之前所要做的工作 28

2.1 什么是驱动 28

2.1.1 驱动程序的魅力 28

2.1.2 计算机中的驱动 29

2.1.3 手机中的驱动程序 29

2.2 简析Android安装文件 30

2.2.1 Android SDK目录结构 30

2.2.2 android.jar及内部结构 31

2.2.3 SDK文档及阅读技巧 32

2.2.4 SDK工具集 33

2.3 解析Android SDK实例 34

2.4 Android系统架构 38

2.4.1 Android体系结构介绍 38

2.4.2 Android应用工程文件组成 40

2.4.3 应用程序的生命周期 43

2.5 开源还是不开源 45

2.5.1 雾里看花的开源 45

2.5.2 从为什么选择Java谈为什么不开源驱动程序 46

2.5.3 对驱动开发者来说是一把双刃剑 47

第3章 Linux内核简析 48

3.1 Linux基础 48

3.1.1 Linux历史简介 48

3.1.2 主要版本 49

3.1.3 计算机业界的工业革命 49

3.1.4 2007年带来的震撼杰作 50

3.2 Android和Linux的关系 50

3.2.1 继承与Linux 50

3.2.2 Android和Linux内核的区别 51

3.3 简析Linux内核 53

3.3.1 内核的体系结构 53

3.3.2 和Android密切相关的Linux内核知识 55

3.4 分析Linux内核源码很有必要 58

3.4.1 源码目录结构 59

3.4.2 浏览源码的工具 61

3.4.3 为什么用汇编语言编写内核代码 62

3.4.4 Linux内核的显著特性 62

3.4.5 学习Linux内核的方法 70

第2篇 必备技术篇 76

第4章 分析Android源码 76

4.1 搭建Linux开发环境和工具 76

4.1.1 搭建Linux开发环境 76

4.1.2 设置环境变量 77

4.1.3 安装编译工具 77

4.2 获取Android源码 78

4.3 分析并编译Android源码 79

4.3.1 Android源码的结构 80

4.3.2 编译Android源码 84

4.3.3 运行Android源码 85

4.3.4 实践演练——演示两种编译Android程序的方法 86

4.4 编译Android Kernel 90

4.4.1 获取Goldfish内核代码 90

4.4.2 获取MSM内核代码 93

4.4.3 获取OMAP内核代码 93

4.4.4 编译Android的Linux内核 93

4.5 运行模拟器 95

4.5.1 Linux环境下运行模拟器的方法 95

4.5.2 模拟器辅助工具——ADB 96

第5章 驱动需要移植 99

5.1 驱动开发需要做的工作 99

5.2 Android移植 101

5.2.1 移植的任务 101

5.2.2 移植的内容 102

5.2.3 驱动开发需要做的工作 103

5.3 Android对Linux的改造 103

5.3.1 Android的核心驱动 103

5.3.2 Android对Linux内核文件的改动 105

5.3.3 为Android构建Linux的操作系统 107

5.4 内核空间和用户空间接口是一个媒介 107

5.4.1 内核空间和用户空间的相互作用 107

5.4.2 系统和硬件之间的交互 108

5.4.3 使用Relay实现内核到用户空间的数据传输 110

5.5 三类驱动程序 113

5.5.1 字符设备驱动 113

5.5.2 块设备驱动 121

5.5.3 网络设备驱动 125

第6章 HAL层深入分析 127

6.1 认识HAL层 127

6.1.1 HAL层的发展 128

6.1.2 过去和现在的区别 129

6.2 分析HAL层源码 129

6.2.1 分析HAL moudle 129

6.2.2 分析mokoid工程 132

6.3 总结HAL层的使用方法 141

6.4 Sensor(传感器)在HAL层的表现 144

6.4.1 HAL层的Sensor代码 144

6.4.2 总结Sensor编程的流程 146

6.4.3 分析Sensor源码看Android API与硬件平台的衔接 146

6.5 移植总结 157

6.5.1 移植各个Android部件的方式 157

6.5.2 移植技巧之一——不得不说的辅助工作 158

第7章 Goldfish下的驱动解析 165

7.1 staging驱动 165

7.1.1 staging驱动概述 165

7.1.2 Binder驱动程序 166

7.1.3 Logger驱动 175

7.1.4 Lowmemorykiller组件 175

7.1.5 Timed Output驱动程序 176

7.1.6 Timed Gpio驱动程序 178

7.1.7 Ram Console驱动程序 179

7.2 wakelock和early_suspend 179

7.2.1 wakelock和early_suspend的原理 179

7.2.2 Android休眠 180

7.2.3 Android唤醒 183

7.3 Ashmem驱动程序 184

7.4 Pmem驱动程序 187

7.5 Alarm驱动程序 188

7.5.1 Alarm简析 188

7.5.2 Alarm驱动的实现 188

7.6 USB Gadget驱动程序 190

7.7 Android Paranoid驱动程序 191

7.8 Goldfish设备驱动 192

7.8.1 Framebuffer驱动 193

7.8.2 键盘驱动 197

7.8.3 实时时钟驱动 198

7.8.4 TTY终端驱动 199

7.8.5 NandFlash驱动 200

7.8.6 MMC驱动 200

7.8.7 电池驱动 200

第8章 MSM内核和驱动解析 201

8.1 MSM基础 201

8.1.1 高通公司介绍 201

8.1.2 常见MSM处理器产品 201

8.1.3 Snapdragon内核介绍 203

8.2 移植MSM内核简介 204

8.3 移植MSM 205

8.3.1 Makefile文件 205

8.3.2 驱动和组件 207

8.3.3 设备驱动 209

8.3.4 高通特有的组件 211

第9章 OMAP内核和驱动解析 214

9.1 OMAP基础 214

9.1.1 OMAP简析 214

9.1.2 常见OMAP处理器产品 214

9.1.3 开发平台 215

9.2 OMAP内核 215

9.3 移植OMAP体系结构 217

9.3.1 移植OMAP平台 217

9.3.2 移植OMAP处理器 220

9.4 移植Android专用驱动和组件 224

9.5 OMAP的设备驱动 226

第3篇 核心技术与应用篇 232

第10章 显示系统驱动应用 232

10.1 显示系统介绍 232

10.1.1 Android的版本 232

10.1.2 不同版本的显示系统 233

10.2 移植和调试前的准备 233

10.2.1 Framebuffer驱动程序 233

10.2.2 硬件抽象层 235

10.3 实现显示系统的驱动程序 247

10.3.1 Goldfish中的Framebuffer驱动程序 247

10.3.2 使用Gralloc模块的驱动程序 250

10.4 MSM高通处理器中的显示驱动实现 260

10.4.1 MSM中的Framebuffer驱动程序 261

10.4.2 MSM中的Gralloc驱动程序 263

10.5 OMAP处理器中的显示驱动实现 271

第11章 输入系统驱动应用 274

11.1 输入系统介绍 274

11.1.1 Android输入系统的结构元素介绍 274

11.1.2 我们的工作 275

11.2 Input(输入)驱动 276

11.3 模拟器的输入驱动 290

11.4 MSM高通处理器中的输入驱动实现 291

11.4.1 触摸屏驱动 291

11.4.2 按键和轨迹球驱动 297

11.5 OMAP处理器中的输入驱动实现 300

11.5.1 触摸屏驱动程序 300

11.5.2 键盘驱动程序 300

第12章 振动器系统驱动 303

12.1 振动器系统结构 303

12.1.1 硬件抽象层 304

12.1.2 JNI框架部分 306

12.2 开始移植 307

12.2.1 移植振动器驱动程序 307

12.2.2 实现硬件抽象层 308

12.3 在MSM平台实现振动器驱动 309

第13章 音频系统驱动 312

13.1 音频系统结构 312

13.2 分析音频系统的层次 313

13.2.1 层次说明 313

13.2.2 Media库中的Audio框架 314

13.2.3 本地代码 317

13.2.4 JNI代码 320

13.2.5 Java代码 321

13.3 移植Audio系统的必备技术 322

13.3.1 我们的工作 322

13.3.2 分析硬件抽象层 322

13.3.3 分析AudioFlinger中的Audio硬件抽象层的实现 324

13.4 真正实现Audio硬件抽象层 330

13.5 MSM平台实现Audio驱动系统 330

13.5.1 实现Audio驱动程序 330

13.5.2 实现硬件抽象层 331

13.6 OSS平台实现Audio驱动系统 335

13.6.1 OSS驱动程序介绍 335

13.6.2 mixer 336

13.7 ALSA平台实现Audio系统 343

13.7.1 注册音频设备和音频驱动 343

13.7.2 在Android中使用ALSA声卡 344

13.7.3 在OMAP平台移植Android的ALSA声卡驱动 352

第14章 视频输出系统驱动 356

14.1 视频输出系统结构 356

14.2 我们需要移植的部分 358

14.3 分析硬件抽象层 358

14.3.1 Overlay系统硬件抽象层的接口 358

14.3.2 实现Overlay系统的硬件抽象层 361

14.3.3 实现接口 362

14.4 实现Overlay硬件抽象层 363

14.5 在OMAP平台实现Overlay系统 365

14.5.1 实现输出视频驱动程序 365

14.5.2 实现Overlay硬件抽象层 366

14.6 系统层调用Overlay HAL的架构 372

14.6.1 调用Overlay HAL的架构的流程 372

14.6.2 S3C6410 Android Overlay的测试代码 376

第15章 OpenMax多媒体框架 378

15.1 OpenMax基本层次结构 378

15.2 分析OpenMax框架构成 379

15.2.1 OpenMax总体层次结构 379

15.2.2 OpenMax IL层的结构 380

15.2.3 Android中的OpenMax 383

15.3 实现OpenMax IL层接口 383

15.3.1 OpenMax IL层的接口 383

15.3.2 在OpenMax IL层中我们需要干什么 389

15.3.3 研究Android中的OpenMax适配层 390

15.4 在OMAP平台实现OpenMax IL 392

15.4.1 实现文件 392

15.4.2 分析TI OpenMax IL的核心 393

15.4.3 实现TI OpenMax IL组件实例 396

第16章 多媒体插件框架 401

16.1 Android多媒体插件 401

16.2 我们需要移植的内容 402

16.3 OpenCore引擎 403

16.3.1 OpenCore层次结构 403

16.3.2 OpenCore代码结构 404

16.3.3 OpenCore编译结构 405

16.3.4 OpenCore OSCL 409

16.3.5 实现OpenCore中的OpenMax部分 411

16.3.6 OpenCore的扩展 424

16.4 Stagefright引擎 430

16.4.1 Stagefright代码结构 430

16.4.2 Stagefright实现OpenMax接口 430

16.4.3 Video Buffer传输流程 434

第17章 传感器系统 440

17.1 传感器系统的结构 440

17.2 我们需要移植的内容 442

17.2.1 移植驱动程序 442

17.2.2 移植硬件抽象层 443

17.2.3 实现上层部分 444

17.3 在模拟器中实现传感器 448

第18章 照相机系统 454

18.1 Camera系统的结构 454

18.2 我们需要移植的内容 457

18.3 移植和调试 457

18.3.1 V4L2驱动程序 457

18.3.2 硬件抽象层 464

18.4 实现Camera系统的硬件抽象层 468

18.4.1 Java程序部分 468

18.4.2 Camera的Java本地调用部分 469

18.4.3 Camera的本地库libui.so 470

18.4.4 Camera服务libcameraservice.so 471

18.5 MSM平台实现Camera系统 476

18.6 OMAP平台实现Camera系统 479

第19章 Wi-Fi系统、蓝牙系统和GPS系统 480

19.1 Wi-Fi系统 480

19.1.1 Wi-Fi系统的结构 480

19.1.2 需要移植的内容 482

19.1.3 移植和调试 482

19.1.4 OMAP平台实现Wi-Fi 490

19.1.5 配置Wi-Fi的流程 492

19.1.6 具体演练——在Android下实现Ethernet 494

19.2 蓝牙系统 495

19.2.1 蓝牙系统的结构 495

19.2.2 需要移植的内容 497

19.2.3 具体移植 498

19.2.4 MSM平台的蓝牙驱动 500

19.3 定位系统 502

19.3.1 定位系统的结构 502

19.3.2 需要移植的内容 503

19.3.3 移植和调试 504

第20章 电话系统 517

20.1 电话系统基础 517

20.1.1 电话系统简介 517

20.1.2 电话系统结构 519

20.2 需要移植的内容 520

20.3 移植和调试 520

20.3.1 驱动程序 520

20.3.2 RIL接口 522

20.4 电话系统实现流程分析 525

20.4.1 初始启动流程 525

20.4.2 request流程 527

20.4.3 response流程 530

第21章 其他系统 532

21.1 Alarm警报器系统 532

21.1.1 Alarm系统的结构 532

21.1.2 需要移植的内容 533

21.1.3 移植和调试 534

21.1.4 模拟器环境的具体实现 535

21.1.5 MSM平台实现Alarm 536

21.2 Lights光系统 537

21.2.1 Lights光系统的结构 537

21.2.2 需要移植的内容 538

21.2.3 移植和调试 538

21.2.4 MSM平台实现光系统 540

21.3 Battery电池系统 541

21.3.1 Battery系统的结构 541

21.3.2 需要移植的内容 542

21.3.3 移植和调试 542

21.3.4 模拟器中实现电池系统 546

相关图书
作者其它书籍
返回顶部