图书介绍

ANDROID底层接口与驱动开发技术详解2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

ANDROID底层接口与驱动开发技术详解
  • 陈强编著 著
  • 出版社: 北京:中国铁道出版社
  • ISBN:9787113197957
  • 出版时间:2012
  • 标注页数:643页
  • 文件大小:130MB
  • 文件页数:661页
  • 主题词:移动终端-应用程序-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

ANDROID底层接口与驱动开发技术详解PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1篇 基础知识篇1

第1章 Android驱动开发基础1

1.1 认识什么是驱动1

1.1.1 驱动程序的作用1

1.1.2 PC中的驱动2

1.1.3 手机中的驱动程序2

1.2 开源还是不开源2

1.2.1 雾里看花的开源3

1.2.2 从为什么选择Java谈为什么不开源驱动程序3

1.2.3 对驱动开发者来说是一把双刃剑4

1.3 Linux开发基础4

1.3.1 Linux历史简介4

1.3.2 主要版本5

1.3.3 Linux的巨大前景5

1.4 Android和Linux的关系6

1.4.1 Android继承于Linux6

1.4.2 Android和Linux内核的区别6

1.5 简析Linux内核8

1.5.1 Linux内核的体系结构8

1.5.2 和Android密切相关的Linux内核知识10

1.6 分析Linux内核源码14

1.6.1 源码目录结构14

1.6.2 浏览源码的工具16

1.6.3 Linux内核的显著特性18

1.6.4 学习Linux内核的方法24

第2章 获取并编译Android源码29

2.1 获取Android源码29

2.1.1 在Linux系统获取Android源码29

2.1.2 在Windows平台获取Android源码30

2.2 分析Android源码结构36

2.3 编译Android源码37

2.3.1 搭建编译环境38

2.3.2 开始编译39

2.3.3 在模拟器中运行40

2.3.4 常见的错误分析40

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

2.4 编译Android Kernel44

2.4.1 获取Goldfish内核代码45

2.4.2 获取MSM内核代码47

2.4.3 获取OMAP内核代码47

2.4.4 编译Android的Linux内核48

第3章 Android驱动移植基础50

3.1 驱动开发需要做的工作50

3.2 Android移植基础52

3.2.1 移植的任务52

3.2.2 需要移植的内容53

3.2.3 驱动开发需要做的工作54

3.3 Android对Linux的改造55

3.3.1 Android的独有驱动55

3.3.2 Android的核心驱动55

3.3.3 Android对Linux内核文件的改动57

3.3.4 为Android构建Linux的操作系统58

3.4 内核空间和用户空间之间接口59

3.4.1 内核空间和用户空间的相互作用59

3.4.2 系统和硬件之间的交互59

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

3.5 三类驱动程序65

3.5.1 字符设备驱动65

3.5.2 块设备驱动72

3.5.3 网络设备驱动75

第4章 分析三大内核系统77

4.1 Goldfish内核和驱动解析77

4.1.1 Goldfish基础78

4.1.2 Android专用驱动简介79

4.1.3 Ashmem驱动介绍82

4.1.4 Pmem驱动介绍82

4.1.5 Alarm驱动程序83

4.1.6 USB Gadget驱动程序83

4.1.7 Paranoid驱动介绍84

4.1.8 Goldfish的设备驱动85

4.2 MSM内核和驱动解析87

4.2.1 MSM基础87

4.2.2 移植MSM内核简介90

4.2.3 移植MSM91

4.3 OMAP内核和驱动解析98

4.3.1 OMAP基础98

4.3.2 OMAP内核100

4.3.3 移植OMAP体系结构101

4.3.4 移植Android专用驱动和组件108

4.3.5 OMAP的设备驱动109

第2篇 专用驱动篇114

第5章 分析JNI114

5.1 JNI的本质114

5.2 分析Java层116

5.2.1 加载JNI库116

5.2.2 实现扫描工作118

5.2.3 读取并保存信息119

5.2.4 删除不是SD卡中的文件信息121

5.2.5 processDirectory121

5.2.6 扫描函数scanFile()122

5.2.7 JNI中的异常处理122

5.3 分析JNI层123

5.3.1 将Native对象的指针保存到Java对象123

5.3.2 创建Native层的MediaScanner对象124

5.4 Native(本地)层124

5.4.1 注册JNI函数124

5.4.2 完成注册工作126

5.4.3 动态注册128

5.4.4 处理路径参数130

5.4.5 扫描文件130

5.4.6 添加TAG信息131

5.4.7 总结函数JNI_OnLoad()与函数JNI_OnUnload()的用途131

5.4.8 Java与JNI基本数据类型转换132

5.4.9 JNIEnv接口133

5.4.10 JNI中的环境变量135

5.5 Camera模块的JNI实例分析135

5.5.1 Java层预览接口135

5.5.2 注册预览的JNI函数137

5.5.3 C/C++层的预览函数140

5.6 开发自己的JNI程序140

第6章 硬件设备驱动程序143

6.1 初识HAL层143

6.1.1 HAL层简介144

6.1.2 HAL_legacy和HAL的对比145

6.2 分析HAL层源码145

6.2.1 分析HAL moudle146

6.2.2 丈件hardware.h146

6.2.3 文件hardware.c148

6.3 分析硬件抽象层的加载过程151

6.4 分析硬件访问服务153

6.4.1 定义硬件访问服务接口153

6.4.2 实现硬件访问服务154

6.5 分析mokoid工程155

6.5.1 直接调用service方法的实现代码156

6.5.2 通过Manager调用service的实现代码160

6.6 分析Sensor(传感器)在HAL层的实现163

6.6.1 HAL层的Sensor代码163

6.6.2 Sensor编程的流程165

6.7 HAL和系统移植166

6.7.1 移植各个Android部件的方式166

6.7.2 辅助工作166

第7章 Binder驱动程序172

7.1 引出Binder机制172

7.2 Binder机制概述173

7.3 分析Binder驱动程序的数据结构175

7.4 设备初始化185

7.5 打开Binder设备文件186

7.6 实现内存映射188

7.6.1 分析流程188

7.6.2 分析具体代码188

7.7 释放物理页面193

7.8 处理内核缓冲区193

7.8.1 分配内核缓冲区函数193

7.8.2 添加到红黑树195

7.8.3 释放内核缓冲区196

7.8.4 查询内核缓冲区198

7.9 Binder封装库198

7.9.1 类BBinder199

7.9.2 类BpRefBase202

7.9.3 类IPCThreadState203

第8章 Logger日志驱动207

8.1 Logger系统基础207

8.2 分析Logger驱动程序207

8.2.1 分析文件logger.h208

8.2.2 分析文件logger.c209

8.3 日志库liblog223

8.4 分析日志写入接口227

8.4.1 分析C/C++层的写入接口228

8.4.2 分析Java层的写入接口229

第9章 内存系统驱动238

9.1 分析Android的进程通信机制238

9.1.1 Android的进程间通信(IPC)机制Binder238

9.1.2 Service Manager是Binder机制的上下文管理者240

9.2 分析Ashmem驱动程序241

9.2.1 基础数据结构241

9.2.2 初始化处理242

9.2.3 打开匿名共享内存设备文件244

9.2.4 内存映射246

9.2.5 读/写操作247

9.2.6 锁定和解锁249

9.2.7 回收内存块254

9.3 分析C++访问接口层255

9.3.1 接口MemoryBase255

9.3.2 接口MemoryBase264

9.4 分析Java访问接口层267

第10章 分析电源管理模块271

10.1 Android Power Management基础271

10.2 Framework层分析272

10.2.1 文件PowerManager.java272

10.2.2 文件PowerManagerService.java273

10.3 JNI层分析294

10.3.1 文件android_os_Power.cpp294

10.3.2 文件power.c295

10.4 Kemel(内核)层分析296

10.4.1 文件power.c296

10.4.2 文件earlysuspend.c298

10.4.3 文件wakelock.c299

10.4.4 文件resume.c301

10.4.5 文件suspend.c301

10.4.6 文件main.c302

10.4.7 proc文件303

10.5 wakelock和early suspend303

10.5.1 wake lock的原理303

10.5.2 early_suspend的原理304

10.5.3 Android休眠305

10.5.4 Android唤醒307

第11章 分析低内存管理模块308

11.1 分析OOM机制308

11.1.1 OOM机制基础308

11.1.2 分析OOM机制的具体实现309

11.2 分析Low Memory killer的原理和机制315

11.3 分析Low Memory Killer驱动316

11.3.1 Low Memory Killer驱动基础316

11.3.2 分析核心功能317

11.3.3 设置用户接口320

第12章 分析物理内存驱动323

12.1 PMEM基础323

12.1.1 PMEM概述323

12.1.2 Platform设备基础324

12.1.3 PMEM与Ashmem的区别325

12.2 分析PMEM系统驱动程序325

12.2.1 分析设备实现325

12.2.2 分析驱动的具体实现327

12.2.3 总结PMEM驱动的调用流程350

12.3 分析用户接口空间350

12.3.1 释放位图内存351

12.3.2 释放位图内存空间351

12.3.3 获取位图占用内存352

第13章 分析Time Device驱动354

13.1 分析Timed Output驱动程序354

13.1.1 设备类354

13.1.2 分析Timed Output驱动的具体实现359

13.1.3 实现timed_output_dev设备的读写操作361

13.2 分析Timed Gpio驱动程序362

13.2.1 Timed Gpio驱动的基本原理363

13.2.2 分析Timed Gpio驱动的实现文件363

第14章 分析调试机制驱动Ram Console368

14.1 Ram Console基础368

14.2 分析Ram Console的具体实现369

14.2.1 分析文件ram console.h369

14.2.2 分析文件ram console.c369

第15章 分析时钟系统驱动Alarm379

15.1 Alarm系统基础379

15.1.1 Alarm层次结构介绍379

15.1.2 需要移植的内容381

15.2 分析RTC驱动程序381

15.3 分析Alarm驱动程序381

15.3.1 分析文件android_alarm.h382

15.3.2 分析文件alarm.c383

15.3.3 分析文件alarm-dev.c394

15.4 分析JNI层402

15.5 分析Java层403

15.5.1 分析AlarmManagerService类404

15.5.2 分析AlarmManager类412

15.6 模拟器环境的具体实现413

第16章 分析USB Gadget驱动415

16.1 分析Linux内核的USB驱动程序415

16.1.1 USB设备基础415

16.1.2 分析USB和sysfs的联系419

16.1.3 分析urb通信方式422

16.1.4 分析USB驱动的例程427

16.2 分析USB Gadget驱动438

16.2.1 分析软件结构438

16.2.2 层次整合447

16.2.3 USB设备枚举457

第3篇 设备驱动篇473

第17章 FrameBuffer显示系统驱动473

17.1 显示系统介绍473

17.2 分析内核层474

17.2.1 分析接口文件fb.h474

17.2.2 分析内核实现文件fbmem.c477

17.3 分析硬件抽象层499

17.3.1 分析头文件500

17.3.2 分析硬件帧缓冲区501

17.3.3 实现缓冲区的分配503

17.3.4 显示缓冲映射504

17.3.5 分析管理库文件LayerBuffer.cpp505

第18章 输入系统驱动应用507

18.1 输入系统介绍507

18.1.1 Android输入系统结构元素介绍507

18.1.2 移植工作509

18.2 分析Input(输入)系统驱动509

18.2.1 分析头文件510

18.2.2 分析核心文件input.c513

18.2.3 分析event机制527

18.3 分析硬件抽象层530

18.3.1 分析文件KeycodeLabels.h530

18.3.2 分析文件KeyCharacterMap.h534

18.3.3 分析Kl格式文件535

18.3.4 分析KCM格式文件536

18.3.5 分析文件EventHub.cpp536

第19章 音频系统驱动541

19.1 音频系统基础541

19.2 分析音频系统的层次542

19.2.1 层次说明543

19.2.2 Media库中的Audio框架543

19.2.3 本地代码545

19.2.4 分析JNI代码548

19.2.5 Java层代码简介549

19.3 移植Audio系统的工作549

19.3.1 我们的工作549

19.3.2 分析硬件抽象层550

19.3.3 分析AudioFlinger中的Audio硬件抽象层的实现551

19.3.4 真正实现Audio硬件抽象层556

19.4 在MSM平台实现Audio驱动系统557

19.4.1 实现Audio驱动程序557

19.4.2 实现硬件抽象层558

第20章 视频输出系统驱动562

20.1 视频输出系统结构562

20.2 需要移植的部分564

20.3 分析硬件抽象层564

20.3.1 Overlay系统硬件抽象层的接口564

20.3.2 实现Overlay系统的硬件抽象层566

20.3.3 实现接口567

20.4 实现Overlay硬件抽象层568

第21章 振动器系统驱动571

21.1 振动器系统结构571

21.2 分析硬件抽象层572

21.3 分析JNI层部分574

21.4 分析Java层部分575

21.5 实现移植工作578

21.5.1 移植振动器驱动程序578

21.5.2 实现硬件抽象层579

21.6 在MSM平台实现振动器驱动580

第22章 传感器系统驱动583

22.1 传感器系统的结构583

22.2 分析需要移植的内容585

22.2.1 移植驱动程序585

22.2.2 移植硬件抽象层586

22.2.3 实现上层部分587

22.3 在模拟器中实现传感器驱动591

第23章 照相机系统596

23.1 Camera系统的结构596

23.2 分析需要移植的内容598

23.3 移植和调试599

23.3.1 V4L2驱动程序599

23.3.2 硬件抽象层605

23.4 实现Camera系统的硬件抽象层609

23.4.1 Java程序部分609

23.4.2 Camera的Java本地调用部分610

23.4.3 Camera的本地库libui.so610

23.4.4 Camera服务libcameraservice.so611

第24章 Wi-Fi系统、蓝牙系统和GPS系统616

24.1 Wi-Fi系统616

24.1.1 Wi-Fi系统的结构616

24.1.2 分析需要移植的内容618

24.1.3 分析本地实现618

24.1.4 分析JNI层621

24.1.5 分析Java FrameWork层623

24.1.6 分析Setting中的Wi-Fi设置624

24.2 蓝牙系统625

24.2.1 蓝牙系统的结构625

24.2.2 分析需要移植的内容627

24.2.3 分析驱动程序628

24.2.4 分析本地代码628

24.2.5 在MSM平台实现蓝牙驱动系统630

24.3 定位系统631

24.3.1 分析定位系统的结构631

24.3.2 分析需要移植的内容633

24.3.3 分析驱动程序633

24.3.4 分析硬件抽象层633

24.3.5 分析上层应用部分635

热门推荐