新書推薦:
《
中国年画 1950-1990 THE NEW CHINA: NEW YEAR PICTURE 英文版
》
售價:NT$
1100.0
《
革命与反革命:社会文化视野下的民国政治(近世中国丛书)
》
售價:NT$
435.0
《
画楼:《北洋画报》忆旧(年轮丛书)
》
售價:NT$
1573.0
《
大国脊梁:漫画版
》
售價:NT$
374.0
《
跟着渤海小吏读历史:大唐气象(全三册)
》
售價:NT$
989.0
《
心智的构建:大脑如何创造我们的精神世界
》
售價:NT$
352.0
《
美国小史(揭秘“美国何以成为美国”,理解美国的经典入门读物)
》
售價:NT$
352.0
《
中国古代北方民族史丛书——东胡史
》
售價:NT$
576.0
|
內容簡介: |
本书关注的重点是Android中有关用户交互的Framework的知识。第1章和第2章是全书的基础。第3章的内容相对独立,主要介绍与用户交互直接相关的音频方面的知识。而第4-6章是本书的重点内容,介绍了AndroidUI的通用实现。在深入理解这三章的知识之后,读者可以通过借鉴第7章和第8两章所介绍的SystemUI与壁纸的架构来提高对Android的用户交互进行深度定制的能力。另外,Android源代码作为一个优秀的开源项目,大到架构的设计,小到某段代码的实现,都包含值得我们细细地品味与吸收的设计思想,并且可以应用于自己所设计的代码之上。因此本书在代码分析的过程中会尽可能地对Android采用某种特定实现的原因给出解释或对其优秀的设计思路进行提取,希望读者能够知其然更知其所以然,进而能够在代码研究的过程中跳出代码的具体实现来体会其设计思想,而这正是本书根本目的所在。
|
目錄:
|
推荐序
前 言
第1章 开发环境部署
1.1获取Android源代码
1.2Android的编译
1.3在IDE中导入Android源代码
1.3.1将Android源代码导入Eclipse
1.3.2将Android源代码导入SourceInsight
1.4调试Android源代码
1.4.1使用Eclipse调试Android Java源代码
1.4.2使用gdb调试Android CC++源代码
1.5本章小结
第2章深入理解Java Binder和MessageQueue
2.1概述
2.2Java层中的Binder分析
2.2.1Binder架构总览
2.2.2初始化Java层Binder框架
2.2.3窥一斑,可见全豹乎
2.2.4理解AIDL
2.2.5Java层Binder架构总结
2.3心系两界的MessageQueue
2.3.1MessageQueue的创建
2.3.2提取消息
2.3.3nativePollOnce函数分析
2.3.4MessageQueue总结
2.4本章小结
第3章 深入理解AudioService
3.1概述
3.2音量管理
3.2.1音量键的处理流程
3.2.2通用的音量设置函数setStreamVolume
3.2.3静音控制
3.2.4音量控制小结
3.3音频外设的管理
3.3.1 WiredAccessoryObserver 设备状态的监控
3.3.2AudioService的外设状态管理
3.3.3音频外设管理小结
3.4AudioFocus机制的实现
3.4.1AudioFocus最简单的例子
3.4.2AudioFocus实现原理简介
3.4.3申请AudioFocus
3.4.4释放AudioFocus
3.4.5AudioFocus小结
3.5AudioService的其他功能
3.6本章小结
第4章 深入理解WindowManagerService
4.1初识WindowManagerService
4.1.1一个从命令行启动的动画窗口
4.1.2WMS的构成
4.1.3初识WMS的小结
4.2WMS的窗口管理结构
4.2.1理解WindowToken
4.2.2理解WindowState
4.2.3理解DisplayContent
4.3理解窗口的显示次序
4.3.1主序、子序和窗口类型
4.3.2通过主序与子序确定窗口的次序
4.3.3更新显示次序到Surface
4.3.4关于显示次序的小结
4.4窗口的布局
4.4.1从relayoutWindow开始
4.4.2布局操作的外围代码分析
4.4.3初探performLayoutAndPlaceSurfacesLockedInner
4.4.4布局的前期处理
4.4.5布局DisplayContent
4.4.6布局的最终阶段
4.5WMS的动画系统
4.5.1Android动画原理简介
4.5.2WMS的动画系统框架
4.5.3WindowAnimator分析
4.5.4深入理解窗口动画
4.5.5交替运行的布局系统与动画系统
4.5.6动画系统总结
4.6本章小结
第5章 深入理解Android输入系统
5.1初识Android输入系统
5.1.1getevent与sendevent工具
5.1.2Android输入系统简介
5.1.3IMS的构成
5.2原始事件的读取与加工
5.2.1基础知识:INotify与Epoll
5.2.2 InputReader的总体流程
5.2.3 深入理解EventHub
5.2.4 深入理解InputReader
5.2.5原始事件的读取与加工总结
5.3输入事件的派发
5.3.1通用事件派发流程
5.3.2按键事件的派发
5.3.3DispatcherPolicy与InputFilter
5.3.4输入事件的派发总结
5.4输入事件的发送、接收与反馈
5.4.1深入理解InputChannel
5.4.2连接InputDispatcher和窗口
5.4.3事件的发送
5.4.4事件的接收
5.4.5事件的反馈与发送循环
5.4.6输入事件的发送、接收与反馈总结
5.5关于输入系统的其他重要话题
5.5.1输入事件ANR的产生
5.5.2 焦点窗口的确定
5.5.3以软件方式模拟用户操作
5.6本章小结
第6章 深入理解控件系统
6.1 初识Android的控件系统
6.1.1 另一种创建窗口的方法
6.1.2 控件系统的组成
6.2 深入理解WindowManager
6.2.1 WindowManager的创建与体系结构
6.2.2 通过WindowManagerGlobal添加窗口
6.2.3 更新窗口的布局
6.2.4 删除窗口
6.2.5 WindowManager的总结
6.3 深入理解ViewRootImpl
6.3.1 ViewRootImpl的创建及其重要的成员
6.3.2 控件系统的心跳:performTraversals
6.3.3 ViewRootImpl总结
6.4 深入理解控件树的绘制
6.4.1 理解Canvas
6.4.2 View.invalidate与脏区域
6.4.3 开始绘制
6.4.4 软件绘制的原理
6.4.5 硬件加速绘制的原理
6.4.6 使用绘图缓存
6.4.7 控件动画
6.4.8 绘制控件树的总结
6.5 深入理解输入事件的派发
6.5.1 触摸模式
6.5.2 控件焦点
6.5.3 输入事件派发的综述
6.5.4 按键事件的派发
6.5.5 触摸事件的派发
6.5.6 输入事件派发的总结
6.6 Activity与控件系统
6.6.1 理解PhoneWindow
6.6.2 Activity窗口的创建与显示
6.7 本章小结
第7章 深入理解SystemUI
7.1 初识SystemUI
7.1.1 SystemUIService的启动
7.1.2 状态栏与导航栏的创建
7.1.3 理解IStatusBarService
7.1.4 SystemUI的体系结构
7.2 深入理解状态栏
7.2.1 状态栏窗口的创建与控件树结构
7.2.2 通知信息的管理与显示
7.2.3 系统状态图标区的管理与显示
7.2.4 状态栏总结
7.3 深入理解导航栏
7.3.1 导航栏的创建
7.3.2 虚拟按键的工作原理
7.3.3 SearchPanel
7.3.4 关于导航栏的其他话题
7.3.5 导航栏总结
7.4 禁用状态栏与导航栏的功能
7.4.1 如何禁用状态栏与导航栏的功能
7.4.2 StatusBarManagerService对禁用标记的维护
7.4.3 状态栏与导航栏对禁用标记的响应
7.5 理解SystemUIVisibility
7.5.1 SystemUIVisibility在系统中的漫游过程
7.5.2 SystemUIVisibility发挥作用
7.5.3 SystemUIVisibility总结
7.6 本章小结
第8章 深入理解Android壁纸
8.1 初识Android壁纸
8.2深入理解动态壁纸
8.2.1启动动态壁纸的方法
8.2.2壁纸服务的启动原理
8.2.3 理解UpdateSurface方法
8.2.4 壁纸的销毁
8.2.5 理解Engine的回调
8.3 深入理解静态壁纸-ImageWallpaper
8.3.1 获取用作静态壁纸的位图
8.3.2 静态壁纸位图的设置
8.3.3 连接静态壁纸的设置与获取-WallpaperObserver
8.4 WMS对壁纸窗口的特殊处理
8.4.1 壁纸窗口Z序的确定
8.4.2 壁纸窗口的可见性
8.4.3 壁纸窗口的动画
8.4.4 壁纸窗口总结
8.5 本章小结
|
|