书籍详情
《Android底层驱动分析和移植高金昌,张明星 编著》[47M]百度网盘|亲测有效|pdf下载
  • Android底层驱动分析和移植高金昌,张明星 编著

  • 出版社:鼎新广盈图书专营店
  • 出版时间:2015-07
  • 热度:10398
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

基本信息

书名:Android底层驱动分析和移植

定价:96元

作者:高金昌,张明星 编著

出版社:清华大学出版社

出版日期:2015-07-01

ISBN:9787302397458

字数:1530000

页码:798

版次:1

装帧:平装

开本:16开

商品重量:

编辑推荐


剖析各类驱动的实现过程,分享移动开发的移植技巧

  • 贯通底层驱动、中间层JNI制作、上层UI 接口设计。
  • 面向实战,深入剖析各驱动系统的完整实现流程。
  • 源码分析 全真示例 图片解析=更易于理解的思维路径。
  • 教授精髓,精讲精炼。赠送源码,拿来就用。

内容提要


本书内容分为 3篇,共 22章,循序渐进地讲解了 Android底层系统中的典型驱动方面的知识。本书从获取源码和源码结构分析讲起,依次讲解了基础知识篇、Android专有驱动篇和典型驱动移植篇 3部分的基本知识。在讲解每一个驱动时,从Android系统的架构开始讲起,从内核分析到具体的驱动实现,再从JNI层架构分析到Java应用层的接口运用, 后到典型驱动系统移植和开发,剖析了每一个典型驱动系统的完整实现流程。本书几乎涵盖了所有Android底层驱动的内容,讲解方法通俗易懂,内容翔实,不但适合应用高手的学习,也特别有利于初学者学习和消化。

本书适合作为 Android驱动开发者、Linux开发人员、Android底层学习人员、Android爱好者、Android源码分析人员、Android应用开发人员的学习用书,也可以作为相关培训学校和大专院校相关专业的教学用书。

目录


1篇 基础知识篇

1 Android底层开发基础 ....................... 2

1.1Android系统介绍 ...................................... 2

1.2Android系统架构介绍 .............................. 2

1.3 获取 Android源码 ..................................... 5

1.5 编译源码 .................................................. 20

2 Android驱动开发基础 ..................... 28

2.1 驱动程序基础 .......................................... 28

2.2Linux开发基础 ........................................ 30

2.3Linux内核结构 ........................................ 35

2.4 分析 Linux内核源码 ............................... 40

2.5 学习 Linux内核的方法 ........................... 50

2.6Linux中的 3类驱动程序 ........................ 54

2.7 Android系统移植基础 ............................ 65

2.8 内核空间和用户空间之间的接口 .......... 67

2.9 编写 JNI方法 .......................................... 72

3章主流内核系统解析............................ 76

3.1 Goldfish内核和驱动解析 ....................... 76

3.2 MSM内核和驱动架构 ............................ 85

2 Android专有驱动篇

4章分析硬件抽象层 ............................... 98

4.1 HAL基础 ................................................. 98

4.2 分析 HAL module架构 ......................... 101

4.3 分析文件 hardware.c .............................. 103

4.4 分析硬件抽象层的加载过程 ................ 106

4.5 分析硬件访问服务 ................................ 109

4.6 分析 Mokoid实例 .................................. 111

4.7 HAL和系统移植 ................................... 120

4.8 开发自己的 HAL驱动程序 ..................126

5 Binder通信驱动详解 ...................... 130

5.1分析 Binder驱动程序 ........................... 130

5.2Binder封装库驱动 ................................ 153

5.3 初始化 Java Binder框架 .................. 160

5.4 实体对象 binder_node的驱动 .............. 163

5.5 本地对象 BBinder驱动 ......................... 167

5.6 引用对象 binder_ref驱动 ...................... 177

5.7 代理对象 BpBinder驱动 ....................... 180

6 Logger驱动架构详解 .................... 185

6.1 分析 Logger驱动程序 ........................... 185

6.2 日志库 Liblog驱动 ................................ 201

6.3 日志写入接口驱动 ................................ 206

7 Ashmem驱动详解......................... 217

7.1 分析 Ashmem驱动程序 ........................ 217

7.2 C 访问接口层 ..................................... 231

7.3 实现 Java访问的接口层 ....................... 243

7.4 实战演练——读取内核空间的数据 ..... 247

8章搭建测试环境 ................................. 250

8.1 搭建 S3C6410开发环境 .......................250

8.2 其他开发环境介绍 ................................ 257

8.3 测试驱动的方法 .................................... 259

9章低内存管理驱动 ............................. 266

9.1OOM机制 .............................................. 266

9.2 Android系统的 Low Memory Killer 架构机制 ....... 273

9.3 Low Memory Killer驱动详解 ............... 274

9.4 实战演练——从内存池获取对象 ......... 280

9.5 实战演练——使用用户程序读取内核空间的数据 ....... 282

3篇 典型驱动移植篇

10章电源管理驱动 .............................. 286

10.1Power Management架构基础 ............. 286

10.2 分析 Framework .............................. 287

10.3JNI层架构分析 ................................... 309

10.4Kernel(内核)层架构分析................311

10.5wakelock early_suspend.................. 319

10.6Battery电池系统架构和管理 ..............323

10.7JobScheduler节能调度机制 ................ 331

11 PMEM内存驱动架构 ................... 339

11.1PMEM初步 ......................................... 339

11.2PMEM驱动架构..................................341

11.3 用户空间接口 ...................................... 367

11.4 实战演练——将 PMEM加入到内核中 ............ 370

11.5 实战演练——将 PMEM加入到内核中 ............. 372

11.6 实战演练—— PMEM Camera中的应用 ...... 373

11.7 实战演练—— PMEM的移植与测试 ... 375

12章调试机制驱动 Ram Console ........ 378

12.1Ram Console介绍 ................................378

12.2 实现 RamConsole................................ 378

13 USB Gadget驱动 ........................ 389

13.1 分析 Linux内核的 USB驱动程序 ..... 389

13.2USB Gadget驱动架构详解 .................401

13.3 实战演练—— USB驱动例程分析 ...... 437

13.4 实战演练 .............................................. 450

14 Time Device驱动 ........................ 453

14.1Timed Output驱动架构 ....................... 453

实战演练——实现设备的读写操作..........460

14.2Timed Gpio驱动架构 .......................... 461

15章警报器系统驱动 Alarm ................. 467

15.1Alarm系统基础 ................................... 467

15.2RTC驱动程序架构 .............................. 468

15.3Alarm驱动架构 ................................... 469

15.4JNI层详解 ........................................... 491

15.5Java层详解 .......................................... 493

15.6 模拟器环境的具体实现 ...................... 503

15.7 实战演练 .............................................. 504

16章振动器驱动架构和移植 ................ 512

16.1 振动器系统架构 .................................. 512

16.2 硬件抽象层架构 .................................. 513

16.3JNI层架构 ........................................... 514

16.4Java层架构 .......................................... 515

16.5 实战演练——移植振动器系统 ........... 519

16.6 实战演练——在 MSM平台实现振动器驱动 ........... 520

16.7 实战演练——在 MTK平台实现振动器驱动 ............ 523

16.8 实战演练——移植振动器驱动 ........... 526

17章输入系统驱动 ............................... 527

17.1 输入系统架构分析 .............................. 527

17.2 移植输入系统驱动的方法 ..................528

17.3Input(输入)系统驱动详解 .............. 529

17.4 硬件抽象层详解 .................................. 551

17.5 实战演练 .............................................. 561

18 LCD显示驱动.............................. 573

18.1LCD系统介绍 .....................................573

18.2FrameBuffer内核层详解 ..................... 573

18.3 硬件抽象层详解 .................................. 600

18.4Goldfish中的 FrameBuffer驱动程序详解 ........... 607

18.5 使用 Gralloc模块的驱动程序 ............ 610

18.6MSM高通处理器中的显示驱动 ........ 620

18.7MSM中的 Gralloc驱动程序详解 ...... 623

18.8OMAP处理器中的显示驱动实现 ...... 630

18.9 实战演练 .............................................. 633

19章音频系统驱动 .............................. 664

19.1 音频系统架构基础 .............................. 664

19.2 音频系统层次详解 .............................. 668

19.3 移植 Audio系统 .................................. 672

19.4 实战演练——在 MSM平台实现 Audio驱动 .......... 680

19.5 实战演练——在 OSS平台实现 Audio驱动 ............. 684

19.6 实战演练——在 ALSA平台实现 Audio系统 ........... 692

20 Overlay系统驱动详解 .................. 710

20.1 视频输出系统结构 .............................. 710

20.2 移植 Overlay系统 ............................... 711

20.3 硬件抽象层详解 .................................. 711

20.4 实现 Overlay硬件抽象层 ................... 715

20.5 实战演练——在 OMAP平台实现 Overlay系统 ......... 717

20.6 实战演练——在系统层调用 Overlay HAL.................... 724

21章照相机驱动 .................................. 729

21.1Camera系统的结构 ............................. 729

21.2 移植 Camera系统 ................................ 737

21.3 实战演练——在 MSM平台实现 Camera驱动 ..........747

21.4 实战演练——在 OMAP平台实现 Camera驱动 ......... 750

21.5Android实现 S5PV210 FIMC 驱动 ............. 751

22章蓝牙系统驱动 .............................. 764

22.1Android系统中的蓝牙模块 ................ 764

22.3 低功耗蓝牙协议栈详解 ...................... 767

22.4Android中的 BlueDroid...................... 769

22.5Android蓝牙模块的运作流程 ............783

作者介绍


序言


2007 11 5日,谷歌公司宣布基于 Linux平台的开源手机操作系统 Android诞生,该平台号称是为移动终端打造的真正开放和完整的移动软件,本书作者将和广大读者一起共同领略这款系统的神奇之处。

市场占有率高居

截至 2014 9月,Android在手机市场上的占有率从 2013年的 68.8%上升到 85%。而 iOS则从去年的 19.4%下降到 15.5%WP系统从原来的 2.7%,小幅上升至 3.6%。从数据上看, Android平台占据了市场的主导地位。

由数据可以看出 Android市场的占有率增加幅度较大,WP市场小幅增长,但 iOS却有所下降。就目前来看,智能手机的市场已经饱和,大多数用户都在各个平台中转换。而就在这样一个市场上, Android还增长了 10%左右的占有率确实不易。

 

为开发人员提供了平台

1)保证开发人员可以迅速转型进行 Android应用开发

Android应用程序是通过 Java语言开发的,开发人员只要具备 Java开发基础,就能很快上手并掌握。作为单独的 Android应用开发,对 Java编程门槛的要求并不高,即使是没有编程经验的“门外汉”,也可以在突击学习 Java之后学习 Android。另外, Android完全支持 2D3D和数据库,并且和浏览器实现了集成。所以通过 Android平台,程序员可以迅速、高效地开发出绚丽多彩的应用,例如,常见的工具、浏览器和游戏等。

2)定期举办奖金丰厚的 Android大赛

为了吸引更多的用户使用 Android开发程序,谷歌已经成功举办了奖金为数千万美元的开发者竞赛,鼓励开发人员创建出创意十足、十分有用的软件。这种大赛对开发人员来说,不但能练习自己的开发技术,并且高额的奖金也是学员们学习的动力。

3)开发人员可以利用自己的作品赚钱

为了能让 Android平台吸引更多的关注,谷歌提供了一个专门下载 Android应用的门店 AndroidMarket,网址是 splay.google./store。在这个门店中允许开发人员发布应用程序,也允许 Android用户下载自己喜欢的程序。作为开发者,需要申请开发者账号,申请后才能将自己的程序上传到 Android Market,并且可以对自己的软件进行定价。只要所开发的软件程序足够吸引人,就可以获得很可观的金钱回报。这样实现了学习和赚钱两不误,吸引了更多开发人员加入到 Android大军中来。

 

本书的内容

本书内容分为 3篇,共 22章,循序渐进地讲解了 Android底层系统中的典型驱动方面的知识。本书从Android底层驱动分析和移植获取源码和源码结构分析讲起,依次讲解了基础知识篇、 Android专有驱动篇和典型驱动移植篇 3部分的基本知识。在讲解每一个驱动时,从 Android系统的架构开始讲起,从内核分析到具体的驱动实现,再从 JNI层架构分析到 Java应用层的接口运用, 后到典型驱动系统移植和开发,剖析了每一个典型驱动系统的完整实现流程。本书几乎涵盖了所有 Android底层驱动的内容,讲解方法通俗易懂,内容翔实,不但适合应用高手们的学习,也特别有利于初学者学习和消化。

 

l本书的版本

Android系统自 2008 9月发布个版本 1.1,截至 2014 10月发布版本 5.0,一共有十多个版本。由此可见,Android系统升级频率较快,一年之中 少有两个新版本诞生。如果过于追求新版本,将力不从心。所以建议广大读者不必追求的版本,只需关注的版本即可。据官方统计,截至 2014 10 25日,占据前 3位的版本分别是 Android 4.3Android 4.4 Android 4.2,其实这 3个版本的区别并不是很大,只是在某领域的细节上进行了更新。为了及时体验 Android系统的功能,本书使用的版本是主流的 Android 5.0

 

l本书特色

本书内容十分丰富,我们的目标是通过一本图书,提供多本图书的价值,读者可以根据自己的需要有选择地阅读。在内容的编写上,本书具有以下特色。

1)内容全面,讲解细致

本书几乎涵盖了 Android系统中所有的独有驱动和设备驱动,详细讲解了每一个典型驱动的实现过程和具体移植方法。每一个知识点都力求用通俗易懂的语言详尽展现在读者面前。

2)遵循合理的主线进行讲解

为了使广大读者了解 Android平台中的各个驱动系统,在讲解每一个驱动系统时,从 Linux内核开始讲起,依次剖析了驱动层实现、 JNI层分析、 Java应用和系统移植改造等内容,遵循了从底层到顶层,实现了驱动系统大揭秘的目标。

3)章节独立,自由阅读

本书每一章内容都可以独立成书,读者既可以按照本书编排的章节顺序进行学习,也可以根据自己的需求对某一章节针对性地学习,相信阅读本书会带来很大的快乐。

4)驱动典型,实用性强

本书讲解了现实中 典型驱动系统的实现和移植知识,这些驱动都是在商业项目中 需要的部分,读者可以直接将本书中的知识应用到自己的项目中,实现无缝对接。

 

l读者对象

本书适合作为 Android驱动开发者、 Linux开发人员、 Android底层学习人员、 Android爱好者、 Android源码分析人员、 Android应用开发人员的学习用书,也可以作为相关培训学校和大专院校相关专业的教学用书。

由于水平有限,本书中的纰漏和不尽如人意之处在所难免,诚请读者提出意见或建议,以便修订使之更臻完善。我们提供了售后支持网站(.chubanbook.)及 群(192153124),读者朋友如有疑问可以在此提出,会得到满意的答复。