当前位置:首页 > 工业技术
深入理解Android  卷I
深入理解Android  卷I

深入理解Android 卷IPDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:邓凡平著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2011
  • ISBN:9787111357629
  • 页数:488 页
图书介绍:本书是一本以情景方式对Android的源代码进行深入分析的书。内容广泛,以对Framework层的分析为主,兼顾Native层和Application层;分析深入,每一部分源代码的分析都力求透彻;针对性强,注重实际应用开发需求,书中所涵盖的知识点都是Android应用开发者和系统开发者需要重点掌握的。本书适合有一定基础的Android应用开发工程师和系统工程师阅读。通过对本书的学习,大家将能更深刻地理解Android系统,从而自如应对实际开发中遇到的难题。
《深入理解Android 卷I》目录
标签:深入 理解

第1章 阅读前的准备工作 1

1.1系统架构 2

1.1.1 Android系统架构 2

1.1.2本书的架构 3

1.2搭建开发环境 4

1.2.1下载源码 4

1.2.2编译源码 6

1.3工具介绍 8

1.3.1 Source Insight介绍 8

1.3.3 Busybox的使用 11

1.4本章小结 12

第2章 深入理解JNI 13

2.1 JNI概述 14

2.2学习JNI的实例:MediaScanner 15

2.3 Java层的MediaScanner分析 16

2.3.1加载JNI库 16

2.3.2 Java的native函数和总结 17

2.4 JNI层MediaScanner的分析 17

2.4.1注册JNI函数 18

2.4.2数据类型转换 22

2.4.3 JNIEnv介绍 24

2.4.4通过JNIEnv操作jobject 25

2.4.5 jstring介绍 27

2.4.6 JNI类型签名介绍 28

2.4.7垃圾回收 29

2.4.8 JNI中的异常处理 32

2.5本章小结 32

第3章 深入理解init 33

3.1概述 34

3.2 init分析 34

3.2.1解析配置文件 38

3.2.2解析service 42

3.2.3 init控制service 48

3.2.4属性服务 52

3.3本章小结 60

第4章 深入理解zygote 61

4.1概述 62

4.2 zygote分析 62

4.2.1 AppRuntime分析 63

4.2.2 Welcome to Java World 68

4.2.3关于zygote的总结 74

4.3 SystemServer分析 74

4.3.1 SystemServer的诞生 74

4.3.2 SystemServer的重要使命 77

4.3.3关于SystemServer的总结 83

4.4 zygote的分裂 84

4.4.1 ActivityManagerService发送请求 84

4.4.2有求必应之响应请求 86

4.4.3关于zygote分裂的总结 88

4.5拓展思考 88

4.5.1虚拟机heapsize的限制 88

4.5.2开机速度优化 89

4.5.3 Watchdog分析 90

4.6本章小结 93

第5章 深入理解常见类 95

5.1概述 96

5.2以“三板斧”揭秘RefBase、 sp和WP 96

5.2.1第一板斧——初识影子对象 96

5.2.2第二板斧——由弱生强 103

5.2.3第三板斧——破解生死魔咒 106

5.2.4轻量级的引用计数控制类LightRefBase 108

5.2.5题外话——三板斧的来历 109

5.3 Thread类及常用同步类分析 109

5.3.1一个变量引发的思考 109

5.3.2常用同步类 114

5.4 Looper和Handler类分析 121

5.4.1 Looper类分析 122

5.4.2 Handler分析 124

5.4.3 Looper和Handler的同步关系 127

5.4.4 HandlerThread介绍 129

5.5本章小结 129

第6章 深入理解Binder 130

6.1概述 131

6.2庖丁解MediaServer 132

6.2.1 MediaServer的入口函数 132

6.2.2独一无二的ProcessState 133

6.2.3时空穿越魔术——defaultServiceManager 134

6.2.4注册MediaPlayerService 142

6.2.5秋风扫落叶——StartThread Pool和join Thread Pool分析 149

6.2.6你彻底明白了吗 152

6.3服务总管ServiceManager 152

6.3.1 ServiceManager的原理 152

6.3.2服务的注册 155

6.3.3 ServiceManager存在的意义 158

6.4 MediaPlayerService和它的Client 158

6.4.1查询ServiceManager 158

6.4.2子承父业 159

6.5拓展思考 162

6.5.1 Binder和线程的关系 162

6.5.2有人情味的讣告 163

6.5.3匿名Service 165

6.6学以致用 166

6.6.1纯Native的Service 166

6.6.2扶得起的“阿斗”(aidl) 169

6.7本章小结 172

第7章 深入理解Audio系统 173

7.1概述 174

7.2 AudioTrack的破解 174

7.2.1用例介绍 174

7.2.2 AudioTrack (Java空间)分析 179

7.2.3 AudioTrack (Native空间)分析 188

7.2.4关于AudioTrack的总结 200

7.3 AudioFlinger的破解 200

7.3.1 AudioFlinger的诞生 200

7.3.2通过流程分析AudioFlinger 204

7.3.3 audio track cblk t分析 230

7.3.4关于AudioFlinger的总结 234

7.4 AudioPolicyService的破解 234

7.4.1 AudioPolicyService的创建 235

7.4.2重回AudioTrack 245

7.4.3声音路由切换实例分析 251

7.4.4关于AudioPolicy的总结 262

7.5拓展思考 262

7.5.1 DuplicatingThread破解 262

7.5.2题外话 270

7.6本章小结 272

第8章 深入理解Surface系统 273

8.1概述 275

8.2一个Activity的显示 275

8.2.1 Activity的创建 275

8.2.2 Activity的UI绘制 294

8.2.3关于Activity的总结 296

8.3初识Surface 297

8.3.1和Surface有关的流程总结 297

8.3.2 Surface之乾坤大挪移 298

8.3.3乾坤大挪移的JNI层分析 303

8.3.4 Surface和画图 307

8.3.5初识Surface小结 309

8.4深入分析Surface 310

8.4.1与Surface相关的基础知识介绍 310

8.4.2 SurfaceComposerClient分析 315

8.4.3 SurfaceControl分析 320

8.4.4 writeToParcel和Surface对象的创建 331

8.4.5 lockCanvas和unlockCanvasAndPost分析 335

8.4.6 GraphicBuffer介绍 344

8.4.7深入分析Surface的总结 353

8.5 SurfaceFlinger分析 353

8.5.1 SurfaceFlinger的诞生 354

8.5.2 SF工作线程分析 359

8.5.3 Transaction分析 368

8.5.4关于SurfaceFlinger的总结 376

8.6拓展思考 377

8.6.1 Surface系统的CB对象分析 377

8.6.2 ViewRoot的你问我答 384

8.6.3 LayerBuffer分析 385

8.7本章小结 394

第9章 深入理解Vold和Rild 395

9.1概述 396

9.2 Vold的原理与机制分析 396

9.2.1 Netlink和Uevent介绍 397

9.2.2初识Vold 399

9.2.3 NetlinkManager模块分析 400

9.2.4 VolumeManager模块分析 408

9.2.5 CommandListener模块分析 414

9.2.6 Vold实例分析 417

9.2.7关于Vold的总结 428

9.3 Rild的原理与机制分析 428

9.3.1初识Rild 430

9.3.2 RIL_startEventLoop分析 432

9.3.3 RIL Init分析 437

9.3.4 RIL_ register分析 444

9.3.5关于Rild main函数的总结 447

9.3.6 Rild实例分析 447

9.3.7关于Rild的总结 459

9.4拓展思考 459

9.4.1嵌入式系统的存储知识介绍 459

9.4.2 Rild和Phone的改进探讨 462

9.5本章小结 463

第10章 深入理解MediaScanner 464

10.1概述 465

10.2 android.process.media分析 465

10.2.1 MSR模块分析 466

10.2.2 MSS模块分析 467

10.2.3 android.process.media媒体扫描工作的流程总结 471

10.3 MediaScanner分析 472

10.3.1 Java层分析 472

10.3.2 JNI层分析 476

10.3.3 PVMediaScanner分析 479

10.3.4关于MediaScanner的总结 485

10.4拓展思考 486

10.4.1 MediaScannerConnection介绍 486

10.4.2我问你答 487

10.5本章小结 488

返回顶部