深入理解Android:卷1
前言
第1章 阅读前的准备工作
1.1 系统架构
1.1.1 Android系统架构
1.1.2 本书的架构
1.2 搭建开发环境
1.2.1 下载源码
1.2.2 编译源码
1.3 工具介绍
1.3.1 Source Insight介绍
1.3.2 Busybox的使用
1.4 本章小结
第2章 深入理解JNI
2.1 JNI概述
2.2 学习JNI的实例:MediaScanner
2.3 Java层的MediaScanner分析
2.3.1 加载JNI库
2.3.2 Java的native函数和总结
2.4 JNI层MediaScanner的分析
2.4.1 注册JNI函数
2.4.2 数据类型转换
2.4.3 JNIEnv介绍
2.4.4 通过JNIEnv操作jobject
2.4.5 jstring介绍
2.4.6 JNI类型签名介绍
2.4.7 垃圾回收
2.4.8 JNI中的异常处理
2.5 本章小结
第3章 深入理解init
3.1 概述
3.2 init分析
3.2.1 解析配置文件
3.2.2 解析service
3.2.3 init控制service
3.2.4 属性服务
3.3 本章小结
第4章 深入理解zygote
4.1 概述
4.2 zygote分析
4.2.1 AppRuntime分析
4.2.2 Welcome to Java World
4.2.3 关于zygote的总结
4.3 SystemServer分析
4.3.1 SystemServer的诞生
4.3.2 SystemServer的重要使命
4.3.3 关于 SystemServer的总结
4.4 zygote的分裂
4.4.1 ActivityManagerService发送请求
4.4.2 有求必应之响应请求
4.4.3 关于zygote分裂的总结
4.5 拓展思考
4.5.1 虚拟机heapsize的限制
4.5.2 开机速度优化
4.5.3 Watchdog分析
4.6 本章小结
第5章 深入理解常见类
5.1 概述
5.2 以“三板斧”揭秘RefBase、sp和wp
5.2.1 第一板斧–初识影子对象
5.2.2 第二板斧–由弱生强
5.2.3 第三板斧–破解生死魔咒
5.2.4 轻量级的引用计数控制类LightRefBase
5.2.5 题外话-三板斧的来历
5.3 Thread类及常用同步类分析
5.3.1 一个变量引发的思考
5.3.2 常用同步类
5.4 Looper和Handler类分析
5.4.1 Looper类分析
5.4.2 Handler分析
5.4.3 Looper和Handler的同步关系
5.4.4 HandlerThread介绍
5.5 本章小结
第6章 深入理解Binder
6.1 概述
6.2 庖丁解MediaServer
6.2.1 MediaServer的入口函数
6.2.2 独一无二的ProcessState
6.2.3 时空穿越魔术-defaultServiceManager
6.2.4 注册MediaPlayerService
6.2.5 秋风扫落叶-StartThread Pool和join Thread Pool分析
6.2.6 你彻底明白了吗
6.3 服务总管ServiceManager
6.3.1 ServiceManager的原理
6.3.2 服务的注册
6.3.3 ServiceManager存在的意义
6.4 MediaPlayerService和它的Client
6.4.1 查询ServiceManager
6.4.2 子承父业
6.5 拓展思考
6.5.1 Binder和线程的关系
6.5.2 有人情味的讣告
6.5.3 匿名Service
6.6 学以致用
6.6.1 纯Native的Service
6.6.2 扶得起的“阿斗”(aidl)
6.7 本章小结
第7章 深入理解Audio系统
7.1 概述
7.2 AudioTrack的破解
7.2.1 用例介绍
7.2.2 AudioTrack(Java空间)分析
7.2.3 AudioTrack(Native空间)分析
7.2.4 关于AudioTrack的总结
7.3 AudioFlinger的破解
7.3.1 AudioFlinger的诞生
7.3.2 通过流程分析AudioFlinger
7.3.3 audio_track_cblk_t分析
7.3.4 关于AudioFlinger的总结
7.4 AudioPolicyService的破解
7.4.1 AudioPolicyService的创建
7.4.2 重回AudioTrack
7.4.3 声音路由切换实例分析
7.4.4 关于AudioPolicy的总结
7.5 拓展思考
7.5.1 DuplicatingThread破解
7.5.2 题外话
7.6 本章小结
第8章 深入理解Surface系统
8.1 概述
8.2 一个Activity的显示
8.2.1 Activity的创建
8.2.2 Activity的UI绘制
8.2.3 关于Activity的总结
8.3 初识Surface
8.3.1 和Surface有关的流程总结
8.3.2 Surface之乾坤大挪移
8.3.3 乾坤大挪移的JNI层分析
8.3.4 Surface和画图
8.3.5 初识Surface小结
8.4 深入分析Surface
8.4.1 与Surface相关的基础知识介绍
8.4.2 SurfaceComposerClient分析
8.4.3 SurfaceControl分析
8.4.4 writeToParcel和Surface对象的创建
8.4.5 lockCanvas和unlockCanvasAndPost分析
8.4.6 GraphicBuffer介绍
8.4.7 深入分析Surface的总结
8.5 SurfaceFlinger分析
8.5.1 SurfaceFlinger的诞生
8.5.2 SF工作线程分析
8.5.3 Transaction分析
8.5.4 关于SurfaceFlinger的总结
8.6 拓展思考
8.6.1 Surface系统的CB对象分析
8.6.2 ViewRoot的你问我答
8.6.3 LayerBuffer分析
8.7 本章小结
第9章 深入理解Vold和Rild
9.1 概述
9.2 Vold的原理与机制分析
9.2.1 Netlink和Uevent介绍
9.2.2 初识Vold
9.2.3 NetlinkManager模块分析
9.2.4 VolumeManager模块分析
9.2.5 CommandListener模块分析
9.2.6 Vold实例分析
9.2.7 关于Vold的总结
9.3 Rild的原理与机制分析
9.3.1 初识Rild
9.3.2 RIL_startEventLoop分析
9.3.3 RIL_Init分析
9.3.4 RIL_register分析
9.3.5 关于Rild main函数的总结
9.3.6 Rild实例分析
9.3.7 关于Rild的总结
9.4 拓展思考
9.4.1 嵌入式系统的存储知识介绍
9.4.2 Rild和Phone的改进探讨
9.5 本章小结
第10章 深入理解MediaScanner
10.1 概述
10.2 android.process.media分析
10.2.1 MSR模块分析
10.2.2 MSS模块分析
10.2.3 android.process.media媒体扫描工作的流程总结
10.3 MediaScanner分析
10.3.1 Java层分析
10.3.2 JNI层分析
10.3.3 PVMediaScanner分析
10.3.4 关于MediaScanner的总结
10.4 拓展思考
10.4.1 MediaScannerConnection介绍
10.4.2 我问你答
10.5 本章小结
本书使用 GeChiUI.com 发布
6.6 学以致用
6.6 学以致用
最后更新于:2022-04-02 05:51:00
全书可能惟有Binder系统有如此大的魅力,让我们用单独一节来介绍如何使用它。
';