《Android板级支持与硬件相关子系统》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:韩超编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2013
  • ISBN:9787121213489
  • 页数:408 页
图书介绍:本书以硬件相关的子系统为核心,提供具有完整知识体系Android系统级的开发知识。本书选定了几个流行的硬件作为参考平台,读者可以很容易地得到硬件和开源代码。本书突出了硬件相关的子系统的特点,展示了几个不同的硬件平台的内核结构,介绍了每个子系统的总体结构和BSP结构、每个子系统的BSP的实现要点,以及具体硬件在Linux内核与Android硬件抽象层相关的实现。

第1章 Android的BSP和子系统开发 1

1.1 Android板级支持工作概述 1

1.1.1 Android的开放源代码工程和BSP 1

1.1.2 Android的系统结构 1

1.2 Android的开发环境和源代码 2

1.2.1 Android的开发环境 2

1.2.2 源代码仓库 3

1.3 BSP模块和相关子系统 5

1.3.1 Android的BSP 5

1.3.2 BSP和硬件相关子系统 6

1.3.3 不同类型的Android设备 7

第2章 Android系统BSP部分工作 8

2.1 Android的BSP部分工作概述 8

2.2 BSP的全局部分 8

2.2.1 源代码工程板级别支持部分 9

2.2.2 硬件相关的代码改动 11

2.3 Android的Linux操作系统 14

2.3.1 Android中的Linux操作系统的特定内容 14

2.3.2 Android的Linux的基本支持 15

2.3.3 Android各个硬件设备的驱动程序 16

2.4 Android的硬件抽象层 17

2.4.1 硬件抽象层的地位和功能 17

2.4.2 硬件抽象层接口方式 18

2.5 各个子系统的移植方式 22

2.5.1 Android 2.3 中的实现方式 22

2.5.2 Android 2.2 及之前的实现方式 23

2.5.3 Android 4.x中的实现方式 24

2.6 与硬件抽象层相关的框架层目录 24

2.6.1 一直保持不变的代码 24

2.6.2 框架层的本地代码 24

2.6.3 音频视频相关的代码 25

第3章 Android的Linux内核和驱动 26

3.1 Android的Linux内核概述 26

3.1.1 几个内核工程 26

3.1.2 内核工程的编译工具链 26

3.1.3 用户空间关注的内容 27

3.2 Android专用驱动和组件 27

3.2.1 电源管理部分 27

3.2.2 staging中的组件和驱动程序 28

3.2.3 几个主要核心模块 32

3.2.4 辅助的模块和改动 35

3.3 goldfish平台的内核和驱动 37

3.3.1 goldfish平台和内核概述 37

3.3.2 goldfish体系结构移植 38

3.3.3 goldfish的相关设备驱动 40

3.4 高通MSM平台的内核和驱动 42

3.4.1 平台概述 42

3.4.2 体系结构移植 43

3.4.3 设备驱动程序 43

3.5 三星平台的内核和驱动 44

3.5.1 平台概述 44

3.5.2 体系结构移植 45

3.5.3 驱动程序部分 45

3.6 德州仪器OMAP平台的内核和驱动 46

3.6.1 平台概述 46

3.6.2 体系结构移植 47

3.6.3 驱动程序部分 47

第4章 显示系统 49

4.1 显示系统概述 49

4.2 显示子系统结构 50

4.2.1 总体结构 50

4.2.2 核心结构和UI库 51

4.2.3 Surface本地部分 54

4.2.4 Java层的Surface的处理 56

4.3 显示BSP的结构 57

4.3.1 Framebuffer驱动程序 57

4.3.2 gralloc硬件抽象层 59

4.4 显示BSP的实现 61

4.4.1 模拟器显示系统的实现 61

4.4.2 Nexus One系统的实现 68

4.4.3 Nexus S系统的实现 72

4.4.4 Galaxy Nexus系统的实现 73

第5章 用户输入系统 75

5.1 用户输入系统概述 75

5.2 Android 2.3 用户输入子系统 76

5.2.1 总体结构 76

5.2.2 本地框架的几个部分 77

5.2.3 JNI 80

5.2.4 Java层的部分 81

5.3 Android 4.2 的用户输入子系统结构 81

5.3.1 总体结构 81

5.3.2 InputManagerService的实现 82

5.4 用户输入BSP的结构 84

5.4.1 Input驱动程序 84

5.4.2 输入配置文件 87

5.5 用户输入BSP的实现 89

5.5.1 模拟器中的实现 89

5.5.2 Nexus One系统中的实现 90

5.5.3 Nexus S系统中的实现 93

5.5.4 Galaxy Nexus系统中的实现 94

第6章 传感器系统 96

6.1 传感器系统概述 96

6.2 传感器子系统的结构 97

6.2.1 总体结构 97

6.2.2 本地框架层 98

6.2.3 传感器系统的JNI 99

6.2.4 传感器系统的Java层 100

6.3 传感器BSP的结构 101

6.3.1 驱动程序 101

6.3.2 硬件抽象层的内容 102

6.4 传感器BSP的实现 104

6.4.1 仿真器的实现 104

6.4.2 Nexus One系统实现 106

6.4.3 Nexus S系统实现 107

6.4.4 Galaxy Nexus系统实现 109

第7章 音频系统 111

7.1 音频系统概述 111

7.2 音频子系统结构 112

7.2.1 总体结构 112

7.2.2 Audio的本地框架层 113

7.2.3 Audio系统的JNI和Java层 114

7.3 音频BSP的结构 116

7.3.1 Audio驱动程序 116

7.3.2 硬件抽象层的内容 120

7.4 音频BSP的实现 124

7.4.1 通用的Audio系统实现 124

7.4.2 基于OSS的实现方式 129

7.4.3 基于ALSA的实现方式 130

7.4.4 MSM平台和Nexus One系统的实现 132

7.4.5 Nexus S系统的实现 137

第8章 视频叠加输出系统 140

8.1 视频叠加输出系统概述 140

8.2 视频输出子系统的结构 141

8.2.1 Overlay系统的结构 141

8.2.2 本地框架层 142

8.3 视频叠加输出BSP结构 144

8.3.1 移植的内容 144

8.3.2 驱动程序 144

8.3.3 硬件抽象层的内容 144

8.3.4 视频输出的调用者 146

8.3.5 使用Overlay的数据流情况 148

8.4 视频输出BSP的实现 149

8.4.1 骨架实现 149

8.4.2 OMAP系统的实现 151

8.4.3 Nexus S系统的实现 156

第9章 照相机系统 159

9.1 照相机系统概述 159

9.2 照相机子系统的结构 160

9.2.1 照相机系统的结构 160

9.2.2 Camera的本地层 161

9.2.3 Camera的JNI和Java层 165

9.3 照相机BSP的结构 166

9.3.1 移植的内容 166

9.3.2 Video for 4 Linux驱动程序 166

9.3.3 硬件抽象层的内容 168

9.3.4 照相机系统上下层的关系 173

9.4 照相机BSP的实现 175

9.4.1 桩实现 175

9.4.2 Nexus One系统的Camera实现 178

9.4.3 Nexus S系统的Camera实现 180

第10章 OpenGL 3D引擎 184

10.1 OpenGL系统概述 184

10.2 OpenGL系统的结构 184

10.2.1 OpenGL和OpenGL ES的标准结构 184

10.2.2 总体结构 186

10.2.3 OpenGL库的调用者 188

10.3 OpenGL BSP的结构 190

10.3.1 移植的内容 190

10.3.2 OpenGL移植层的接口 190

10.3.3 OpenGL的调用和测试 192

10.4 OpenGL BSP的实现 193

10.4.1 Android软件OpenGL的实现 193

10.4.2 Nexus One系统的实现 195

10.4.3 Nexus S系统的实现 195

10.4.4 Galaxy Nexus系统的实现 196

第11章 OpenMax引擎 197

11.1 OpenMax系统概述 197

11.2 OpenMax子系统结构 197

11.2.1 OpenMax系统的结构 197

11.2.2 Android中OpenMax的适配层 201

11.3 OpenMax BSP的结构 203

11.3.1 OpenMax IL层的接口 203

11.3.2 Android的OpenMax 207

11.4 OpenMax BSP的实现 207

11.4.1 OpenMax IL实现的内容 207

11.4.2 OMAP3的OpenMax IL实现的结构和机制 208

11.4.3 OMAP4的OpenMax IL实现 213

第12章 位块复制 216

12.1 位块复制概述 216

12.2 位块复制子系统结构 216

12.2.1 总体结构 216

12.2.2 copybit的调用者 217

12.3 位块复制BSP的结构 218

12.3.1 驱动程序 218

12.3.2 硬件抽象层的接口 218

12.3.3 实现硬件抽象层 220

12.4 位块复制的实现 220

第13章 无线局域网系统 223

13.1 无线局域网系统概述 223

13.2 无线局域网子系统的结构 223

13.2.1 总体的结构 223

13.2.2 wpa_supplicant工程 225

13.2.3 WiFi本地适配库 227

13.2.4 WiFi的JNI部分 228

13.2.5 WiFi的Java层 228

13.3 无线局域网BSP的结构 229

13.3.1 协议和驱动程序 229

13.3.2 用户空间的内容 230

13.4 无线局域网BSP的实现 231

13.4.1 基于BCM4329的方案(Nexus One和Nexus S) 231

13.4.2 OMAP平台的一个典型实现 232

13.4.3 Galaxy Nexus的实现 234

第14章 蓝牙系统 237

14.1 蓝牙系统概述 237

14.2 蓝牙子系统的结构 237

14.2.1 蓝牙系统的结构 237

14.2.2 BlueZ 239

14.2.3 bluedroid库 241

14.2.4 蓝牙的JNI部分 241

14.2.5 蓝牙的Java部分 242

14.3 BSP的结构 243

14.3.1 协议和驱动程序 244

14.3.2 本地代码的配置部分 245

14.4 Android 4.2 的蓝牙系统 246

14.4.1 系统结构 246

14.4.2 蓝牙硬件模块 246

14.4.3 蓝牙系统的本地层部分 252

14.4.4 BlueTooth包 252

14.5 BSP的实现 253

14.5.1 Nexus One系统的蓝牙实现 253

14.5.2 Nexus S系统的蓝牙实现 254

14.5.3 Galaxy Nexus系统的蓝牙实现 255

第15章 定位系统 257

15.1 定位系统的概述 257

15.2 定位子系统的结构 257

15.2.1 总体结构 257

15.2.2 JNI部分 259

15.2.3 Java部分 260

15.3 定位BSP的结构 263

15.3.1 驱动程序 263

15.3.2 硬件抽象层的接口 264

15.3.3 实现硬件抽象层 266

15.4 定位BSP的实现 266

15.4.1 仿真器的GPS实现 266

15.4.2 Nexus One系统的实现 268

15.4.3 Nexus S系统的实现 269

15.4.4 Galaxy Nexus系统的实现 270

第16章 电话系统 271

16.1 电话系统概述 271

16.2 电话子系统的结构 271

16.2.1 总体结构 271

16.2.2 rild层 273

16.2.3 Java层中的电话部分 275

16.3 电话BSP的结构 278

16.3.1 驱动程序 278

16.3.2 RIL实现库接口(作为硬件抽象层) 280

16.4 电话BSP部分的实现 281

16.4.1 RIL的参考实现 281

16.4.2 数据连接部分 287

16.4.3 Mock RIL 288

第17章 警报器—实时时钟系统 290

17.1 警报器—实时时钟系统 290

17.2 警报器—实时时钟子系统的结构 290

17.2.1 总体结构 290

17.2.2 JNI部分 291

17.2.3 Java部分 292

17.2.4 Android系统时间方面的调用 292

17.3 警报器—实时时钟BSP部分的结构 293

17.3.1 RTC驱动程序 293

17.3.2 Alarm驱动程序 294

17.4 警报器—实时时钟BSP部分的实现 295

17.4.1 模拟器环境中的实现 295

17.4.2 MSM平台和Nexus One系统的实现 295

17.4.3 Nexus S系统的实现 297

17.4.4 Galaxy Nexus系统的实现 298

第18章 光系统 300

18.1 光系统概述 300

18.2 背光和指示灯子系统的结构 300

18.2.1 总体结构 300

18.2.2 JNI部分 301

18.2.3 Java服务部分和调用部分 302

18.3 背光和指示灯BSP部分的结构 303

18.3.1 驱动程序 303

18.3.2 硬件抽象层的内容 304

18.4 背光和指示灯BSP部分的实现 305

18.4.1 Nexus One系统的实现 305

18.4.2 Nexus S系统的实现 307

18.4.3 Galaxy Nexus系统的实现 308

第19章 振动器系统 311

19.1 振动器系统概述 311

19.2 振动器子系统的结构 311

19.2.1 振动器部分的结构 311

19.2.2 JNI部分 312

19.2.3 Java框架部分 313

19.3 振动器BSP部分的结构 313

19.3.1 驱动程序 313

19.3.2 硬件抽象层的内容 314

19.4 振动器BSP部分的实现 314

19.4.1 Nexus One系统的实现 315

19.4.2 Nexus S系统的实现 316

19.4.3 Galaxy Nexus 316

第20章 电池信息部分 318

20.1 电池信息部分 318

20.2 电池信息子系统的结构 318

20.2.1 电池系统部分的结构 318

20.2.2 JNI部分 319

20.2.3 Java部分 321

20.3 电池信息BSP部分的结构 321

20.4 电池信息BSP部分的实现 322

20.4.1 模拟器中的实现 322

20.4.2 Nexus One 323

20.4.3 Nexus S 324

20.4.4 Galaxy Nexus 325

第21章 Android 4.x的音频、视频系统 326

21.1 Android 4.x的音频系统 326

21.1.1 音频系统的结构 326

21.1.2 音频框架层 327

21.1.3 音频BSP部分结构 327

21.2 Android 4.x音频的BSP实现 330

21.2.1 主实现和策略实现 330

21.2.2 仿真器实现 330

21.2.3 A2DP实现 331

21.2.4 Galaxy Nexus的实现 332

21.3 Android 4.x照相机系统 336

21.3.1 照相机系统的结构 336

21.3.2 Camera的框架层 336

21.3.3 照相机BSP部分结构 339

21.4 Android4.x照相机的BSP实现 342

21.4.1 仿真器实现 342

21.4.2 Galaxy Nexus的实现 346

21.5 Android 4.x视频组合系统 349

21.5.1 视频组合系统结构 349

21.5.2 SurfaceFlinger对视频组合的使用 350

21.5.3 视频组合BSP部分结构 351

21.6 Android 4.x视频组合的BSP实现 352

21.6.1 默认实现 352

21.6.2 Galaxy Nexus的视频组合 352

第22章 Android 4.x近场通信系统 357

22.1 近场通信系统概述 357

22.2 近场通信子系统的结构 358

22.2.1 总体结构 358

22.2.2 NFC本地库 359

22.2.3 Android框架层的NFC相关内容 360

22.2.4 NFC包 361

22.3 近场通信BSP的结构 365

22.3.1 NFC-NCI接口 365

22.3.2 NFC接口 366

22.4 近场通信BSP的实现 366

22.4.1 NCI-NFC的桩实现 366

22.4.2 NFC的桩实现 366

22.4.3 Galaxy Nexus的NFC实现 367

第23章 Android 4.2 的电源控制 368

23.1 电源控制 368

23.2 电源控制的结构 368

23.2.1 总体结构 368

23.2.2 电源控制的使用 368

23.3 电源控制BSP的结构 369

23.4 电源控制BSP的实现 369

23.4.1 通用的电源控制实现 369

23.4.2 Galaxy Nexus的电源控制实现 370

第24章 本地时间 372

24.1 本地时间子系统结构 372

24.1.1 本地时间的结构 372

24.1.2 本地时间的使用 372

24.2 本地时间BSP的结构 373

24.3 本地时间BSP的实现 373

第25章 Android 4.2 密钥 375

25.1 密钥概述 375

25.2 安全和密钥子系统结构 376

25.2.1 安全和密钥的总体结构 376

25.2.2 keystore守护进程 376

25.2.3 android.security的内容 377

25.3 密钥的BSP部分的结构 379

25.4 密钥的BSP实现 380

25.4.1 通用的软件密钥实现 380

25.4.2 Galaxy Nexus的密钥实现 381

第26章 电源管理 384

26.1 Android电源管理 384

26.2 Android内核空间的电源管理 385

26.2.1 总体结构 385

26.2.2 wakelock 386

26.2.3 wakelock的用户空间 388

26.2.4 earlysuspend部分 389

26.2.5 其他 391

26.3 Android用户空间的电源管理 392

26.3.1 电源管理的本地库 392

26.3.2 电源管理的JNI库 393

26.3.3 电源管理的Java部分 393

26.4 电源管理的策略 394

26.4.1 驱动程序的变化 394

26.4.2 用户空间的控制 396

第27章 恢复和升级 397

27.1 恢复和升级概述 397

27.1.1 Android的Recovery系统的组成 397

27.1.2 Android的Recovery系统的功能和运行流程 398

27.2 recovery系统 399

27.2.1 编译系统 399

27.2.2 init.rc脚本 400

27.2.3 Recovery可执行程序和相关的库 401

27.3 Android系统交互的过程 405

27.3.1 Java部分 405

27.3.2 交互的场景 406