深入剖析Android 系统
作 者: 杨长刚 著
出版时间: 2013
内容简介
《深入剖析Android系统》以Android Jelly Bean(4.1)的代码为蓝本,对Android的部分关键代码进行了注释分析,并辅以大量插图,讲述了Android大部分子系统中的模块和类的静态结构,让读者对Android系统的内部静态结构有着“类”粒度这一层级上的认识和了解。同时,也对关键类和函数的代码调用流程、运行时刻所位于的进程和线程上下文等动态运行场景进行了分析讲述,让读者深刻理解Android系统内部是如何运行的。本书直接对Source Insight进行截图,保留了代码的原始行号、英文注释等信息并进行了高亮显示,方便读者阅读;代码中同时添加了作者所做的中文注释说明。
目录
第1章 智能指针 1
1.1 智能指针概述 1
1.2 引用计数基类RefBase 2
1.3 轻量级引用计数LightRefBase 3
1.4 强指针 3
1.4.1 强指针变量的初始化与生命周期 3
1.4.2 赋值操作与引用计数变化 5
1.5 弱指针 5
第2章 消息队列与线程处理 7
2.1 消息队列处理模型的设计 7
2.2 消息队列与线程处理的Java实现 9
2.2.1 Thread/Runnable 9
2.2.2 Message 10
2.2.3 MessageQueue概述 11
2.2.4 Handler 11
2.2.5 Looper 12
2.2.6 再论Handler 15
2.2.7 对同步消息的支持 16
2.3 native层的Looper与消息队列处理 19
2.3.1 Looper中的睡眠等待与唤醒机制 19
2.3.2 Looper对文件描述符的监控与处理 22
2.3.3 Looper中的消息队列处理机制 25
2.3.4 Looper与线程执行上下文 27
第3章 Binder IPC及其应用 29
3.1 Binder IPC 29
3.1.1 Binder IPC与系统服务 29
3.1.2 Binder类结构与调用关系 31
3.1.3 模板函数interface_cast的背后 33
3.1.4 例子AudioPolicyService 37
3.2 Java层对Binder的封装 40
3.2.1 例子IMediaPlaybackService 42
3.2.2 例子PhoneStateListener 47
3.3 大内存块的跨进程共享 52
3.3.1 概述 52
3.3.2 调用接口 53
3.3.3 设备空间的映射 55
3.3.4 Server侧的处理 57
第4章 HAL硬件抽象层 59
4.1 HAL概述 59
4.2 硬件模块库的通用写法 60
4.3 硬件模块库的装载与解析 63
4.4 例子Lights 65
4.5 例子Camera 68
4.6 例子Power和Vibrator 69
第5章 Android的启动过程 71
5.1 Android初始化语言及解析 71
5.1.1 Action 71
5.1.2 触发器trigger 72
5.1.3 命令Command 72
5.1.4 服务Service 74
5.1.5 .rc文件的解析 76
5.2 BootChart 82
5.3 ueventd守护进程 82
5.4 init进程的启动过程 87
5.5 init.rc文件中的服务进程 93
5.6 system_server进程 95