深入理解Android:卷Ⅲ
作 者: 张大伟
出版时间: 2015
内容简介
本书关注的重点是Android中有关用户交互的Framework的知识。第1章和第2章是全书的基础。第3章的内容相对独立,主要介绍与用户交互直接相关的音频方面的知识。而第4-6章是本书的重点内容,介绍了AndroidUI的通用实现。在深入理解这三章的知识之后,读者可以通过借鉴第7章和第8两章所介绍的SystemUI与壁纸的架构来提高对Android的用户交互进行深度定制的能力。另外,Android源代码作为一个优秀的开源项目,大到架构的设计,小到某段代码的实现,都包含值得我们细细地品味与吸收的设计思想,并且可以应用于自己所设计的代码之上。因此本书在代码分析的过程中会尽可能地对Android采用某种特定实现的原因给出解释或对其优秀的设计思路进行提取,希望读者能够知其然更知其所以然,进而能够在代码研究的过程中跳出代码的具体实现来体会其设计思想,而这正是本书根本目的所在。
目录
推荐序
前 言
第1章 开发环境部署1
1.1获取Android源代码1
1.2Android的编译3
1.3在IDE中导入Android源代码4
1.3.1将Android源代码导入Eclipse4
1.3.2将Android源代码导入SourceInsight5
1.4调试Android源代码6
1.4.1使用Eclipse调试Android Java源代码6
1.4.2使用gdb调试Android C/C++源代码8
1.5本章小结9
第2章深入理解Java Binder和MessageQueue10
2.1概述11
2.2Java层中的Binder分析11
2.2.1Binder架构总览11
2.2.2初始化Java层Binder框架13
2.2.3窥一斑,可见全豹乎16
2.2.4理解AIDL25
2.2.5Java层Binder架构总结28
2.3心系两界的MessageQueue28
2.3.1MessageQueue的创建29
2.3.2提取消息29
2.3.3nativePollOnce函数分析32
2.3.4MessageQueue总结42
2.4本章小结44
第3章 深入理解AudioService45
3.1概述46
3.2音量管理47
3.2.1音量键的处理流程47
3.2.2通用的音量设置函数setStreamVolume()61
3.2.3静音控制63
3.2.4音量控制小结67
3.3音频外设的管理68
3.3.1 WiredAccessoryObserver 设备状态的监控68
3.3.2AudioService的外设状态管理73
3.3.3音频外设管理小结78
3.4AudioFocus机制的实现78
3.4.1AudioFocus最简单的例子79
3.4.2AudioFocus实现原理简介81
3.4.3申请AudioFocus82
3.4.4释放AudioFocus86
3.4.5AudioFocus小结87
3.5AudioService的其他功能88
3.6本章小结89
第4章 深入理解WindowManagerService90
4.1初识WindowManagerService91
4.1.1一个从命令行启动的动画窗口91
4.1.2WMS的构成99
4.1.3初识WMS的小结103
4.2WMS的窗口管理结构104
4.2.1理解WindowToken107
4.2.2理解WindowState111
4.2.3理解DisplayContent112
4.3理解窗口的显示次序112
4.3.1主序、子序和窗口类型112
4.3.2通过主序与子序确定窗口的次序114
4.3.3更新显示次序到Surface119
4.3.4关于显示次序的小结119
4.4窗口的布局119
4.4.1从relayoutWindow()开始120
4.4.2布局操作的外围代码分析124
4.4.3初探performLayoutAndPlaceSurfacesLockedInner()127