深入理解android卷1
第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
2.79MB
文件大小:
评论区