深入理解Android 卷III

深入理解Android 卷III pdf epub mobi txt 电子书 下载 2026

出版者:机械工业出版社
作者:张大伟
出品人:
页数:539
译者:
出版时间:2015-8-1
价格:89.00元
装帧:平装
isbn号码:9787111507369
丛书系列:移动开发
图书标签:
  • Android
  • Android进阶
  • 源码分析
  • 深入理解android卷三
  • 计算机
  • 深入理解
  • 进阶
  • 编程
  • Android
  • 深入理解
  • Android开发
  • 技术
  • 书籍
  • 源码
  • 进阶
  • 移动开发
  • Android系统
  • 程序员
想要找书就要到 小美书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

深入理解Android(卷3)》是Android经典畅销书系(对Android系统源代码的分析最为系统和细致)“深入理解Android”系列Framework卷的第III卷,从源代码的角度,对Android系统的Audio和UI两大功能的相关模块的实现原理和工作机制做了系统且详细的分析,填补了市场的空白。

《深入理解Android(卷3)》在逻辑上分为4个部分:

Part 01(第1~2章):这是本书的基础部分,首先介绍了Android源码环境的搭建、编译和调试;然后讲解了Android进程间通信与任务调度的工具Binder与MessageQueue。这两项基础工作是深入研究Android前必须做的功课。

Part 02(第3章):详细分析了AudioService服务的实现,包括音量管理、音频外设管理、AudioFocus机制的实现等内容。

Part 03(第4~6章):这是本书的核心内容之一,详细分析了Android UI的通用实现,依次剖析了WindowManagerService、Android输入系统、Android控件系统的工作原理。

Part 04(第7~8章):主要分析了SystemUI和Android壁纸相关服务的实现,包括StatusBarManagerService与NotificationManagerService两个系统服务,以及WallpaperManagerService系统服务、动态壁纸与静态壁纸的工作原理等内容。

除此之外,在对海量的Android源代码进行分析的过程中,本书尽可能地对其中的精妙之处进行了分析和解读,目的是希望帮助读者领悟其中的优秀设计思想和方法。

作者简介

张大伟,资深Android系统开发工程师,现就职于索尼移动。从2011年开始从事Android开发,专注于Android系统源代码的研究、定制与维护工作,对Android的架构设计与运行原理有着深入的认识与实践经验,其中对UI相关模块、多媒体系统尤为擅长。曾主持了Android多窗口、多任务以及单手操作等系统定制的开发工作。此外对于其他开发平台如.NET亦有相当的经验。

目录信息

推荐序
前 言
第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章 深入理解WindowManager-Service90
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初探performLayoutAndPlace-SurfacesLockedInner()127
4.4.4布局的前期处理128
4.4.5布局DisplayContent130
4.4.6布局的最终阶段150
4.5WMS的动画系统150
4.5.1Android动画原理简介151
4.5.2WMS的动画系统框架155
4.5.3WindowAnimator分析156
4.5.4深入理解窗口动画160
4.5.5交替运行的布局系统与动画系统173
4.5.6动画系统总结174
4.6本章小结174
第5章 深入理解Android输入系统176
5.1初识Android输入系统177
5.1.1getevent与sendevent工具178
5.1.2Android输入系统简介179
5.1.3IMS的构成181
5.2原始事件的读取与加工185
5.2.1基础知识:INotify与Epoll186
5.2.2 InputReader的总体流程189
5.2.3 深入理解EventHub191
5.2.4 深入理解InputReader205
5.2.5原始事件的读取与加工总结225
5.3输入事件的派发225
5.3.1通用事件派发流程226
5.3.2按键事件的派发237
5.3.3DispatcherPolicy与InputFilter247
5.3.4输入事件的派发总结250
5.4输入事件的发送、接收与反馈250
5.4.1深入理解InputChannel251
5.4.2连接InputDispatcher和窗口252
5.4.3事件的发送260
5.4.4事件的接收263
5.4.5事件的反馈与发送循环264
5.4.6输入事件的发送、接收与反馈总结267
5.5关于输入系统的其他重要话题267
5.5.1输入事件ANR的产生267
5.5.2 焦点窗口的确定270
5.5.3以软件方式模拟用户操作273
5.6本章小结273
第6章 深入理解控件系统275
6.1 初识Android的控件系统276
6.1.1 另一种创建窗口的方法277
6.1.2 控件系统的组成278
6.2 深入理解WindowManager279
6.2.1 WindowManager的创建与体系结构279
6.2.2 通过WindowManagerGlobal添加窗口282
6.2.3 更新窗口的布局284
6.2.4 删除窗口285
6.2.5 WindowManager的总结285
6.3 深入理解ViewRootImpl286
6.3.1 ViewRootImpl的创建及其重要的成员286
6.3.2 控件系统的心跳:performTraversals()290
6.3.3 ViewRootImpl总结317
6.4 深入理解控件树的绘制317
6.4.1 理解Canvas317
6.4.2 View.invalidate()与脏区域320
6.4.3 开始绘制321
6.4.4 软件绘制的原理323
6.4.5 硬件加速绘制的原理334
6.4.6 使用绘图缓存346
6.4.7 控件动画356
6.4.8 绘制控件树的总结360
6.5 深入理解输入事件的派发361
6.5.1 触摸模式361
6.5.2 控件焦点363
6.5.3 输入事件派发的综述376
6.5.4 按键事件的派发381
6.5.5 触摸事件的派发388
6.5.6 输入事件派发的总结404
6.6 Activity与控件系统405
6.6.1 理解PhoneWindow405
6.6.2 Activity窗口的创建与显示414
6.7 本章小结416
第7章 深入理解SystemUI418
7.1 初识SystemUI419
7.1.1 SystemUIService的启动420
7.1.2 状态栏与导航栏的创建422
7.1.3 理解IStatusBarService425
7.1.4 SystemUI的体系结构427
7.2 深入理解状态栏428
7.2.1 状态栏窗口的创建与控件树结构429
7.2.2 通知信息的管理与显示434
7.2.3 系统状态图标区的管理与显示448
7.2.4 状态栏总结452
7.3 深入理解导航栏452
7.3.1 导航栏的创建453
7.3.2 虚拟按键的工作原理459
7.3.3 SearchPanel462
7.3.4 关于导航栏的其他话题465
7.3.5 导航栏总结471
7.4 禁用状态栏与导航栏的功能472
7.4.1 如何禁用状态栏与导航栏的功能472
7.4.2 StatusBarManagerService对禁用标记的维护473
7.4.3 状态栏与导航栏对禁用标记的响应474
7.5 理解SystemUIVisibility475
7.5.1 SystemUIVisibility在系统中的漫游过程476
7.5.2 SystemUIVisibility发挥作用482
7.5.3 SystemUIVisibility总结494
7.6 本章小结495
第8章 深入理解Android壁纸496
8.1 初识Android壁纸497
8.2深入理解动态壁纸498
8.2.1启动动态壁纸的方法498
8.2.2壁纸服务的启动原理498
8.2.3 理解UpdateSurface()方法510
8.2.4 壁纸的销毁515
8.2.5 理解Engine的回调516
8.3 深入理解静态壁纸—ImageWallpaper519
8.3.1 获取用作静态壁纸的位图519
8.3.2 静态壁纸位图的设置522
8.3.3 连接静态壁纸的设置与获取—WallpaperObserver524
8.4 WMS对壁纸窗口的特殊处理526
8.4.1 壁纸窗口Z序的确定527
8.4.2 壁纸窗口的可见性533
8.4.3 壁纸窗口的动画535
8.4.4 壁纸窗口总结538
8.5 本章小结539
· · · · · · (收起)

读后感

评分

评分

评分

评分

评分

用户评价

评分

这本书的排版和图示设计,在技术书籍中算是相当出色的。通常,深度技术书籍容易陷入大段文字的泥淖,读者很容易迷失在信息的洪流中。但这本书通过大量精心绘制的架构图和时序图,有效地将抽象的概念具象化了。例如,在讲解系统服务(System Services)的注册与发现机制时,作者利用一个贯穿始终的类比图,将分散在不同层级的组件关系清晰地勾勒出来,极大地降低了理解难度。我发现,很多过去我只能靠搜索引擎碎片化信息拼凑起来的知识点,在这里得到了一个完整、连贯的解释框架。这种结构化的知识体系建立,对于构建扎实的理论基础至关重要。它不是简单的知识罗列,而是构建了一个知识网络,让新学的知识点能快速与已有的概念挂钩,形成牢固的记忆链条。

评分

这本书对于想要成为资深架构师的开发者来说,是一本不可或缺的参考书。它不像入门指南那样提供“如何做”的简单步骤,而是专注于“为什么是这样”的深层原理探究。在我工作的项目里,我们曾遇到过一个棘手的ANR(Application Not Responding)问题,定位起来异常困难,因为它涉及到跨进程通信和主线程阻塞的复杂交织。当我翻阅到书中关于主线程调度和系统响应机制的那几章时,茅塞顿开。作者对主线程消息循环的底层实现细节的剖析,加上对系统调度器(Scheduler)如何影响线程优先级的论述,直接指明了我们排查的方向。这本书的价值在于,它为你提供了诊断和解决那些“疑难杂症”的工具箱,这些工具箱里的工具,都是用系统的、经过验证的原理打造出来的,而不是临时的“打补丁”技巧。读完它,你对“稳定可靠”的理解会变得更加深刻和务实。

评分

当我拿起这本厚重的书时,脑海里第一个浮现的想法是:这绝对不是一本能在周末轻松读完的书。它的内容密度简直是惊人,每一页都塞满了需要反复研读才能理解的知识点。我尤其欣赏作者在处理并发控制和内存管理部分时所展现出的功力。在如今多核处理器成为标配的时代,如何保证系统稳定性和性能,是所有高级开发人员绕不开的坎。这本书没有简单地介绍`synchronized`或`Lock`,而是直接切入了Java内存模型(JMM)在Android环境下的具体体现,以及底层C/C++代码如何与JVM/ART运行时协同工作,处理内存屏障和缓存一致性的问题。这种跨越语言边界的讲解,极大地拓宽了我的视野。我感觉自己像是在攀登一座技术高峰,虽然过程气喘吁吁,但每登上一层,看到的风景就越开阔,对整个Android生态系统的全局观也越来越清晰。它需要的不是囫囵吞枣式的阅读,而是需要沉下心来,带着疑问去探索,去实践。

评分

这本书的封面设计着实抓人眼球,那种深邃的蓝色调配上银色的字体,一下子就给人心一种“硬核技术”的感觉。初翻开扉页,就能感受到作者对技术细节的执着。我本来以为这会是一本泛泛而谈,只停留在概念层面的理论书籍,但事实证明我错了。它深入剖析了Android系统底层的工作原理,对于我这种在应用层挣扎多年的开发者来说,简直是一剂猛药。书中对Binder机制的讲解尤为细致,那种层层剥开、深入内核的叙述方式,让我仿佛置身于一个技术解剖现场,每一个函数调用、每一个内存操作都暴露无遗。读完这部分,我对Android IPC的理解上升到了一个全新的高度,不再是调用API了事,而是真正理解了“为什么”和“怎么做”。特别是作者对不同IPC方式性能损耗的对比分析,非常实在,对于系统优化有直接的指导意义。唯一美中不足的是,某些章节的伪代码稍微有点晦涩,需要反复琢磨才能完全消化,但瑕不掩瑜,对于追求极致的工程师来说,这恰恰是价值所在。

评分

坦白说,这本书的阅读体验是“高开高走”的典范。一开始可能会因为其学术性的语言风格和大量的术语感到一丝畏惧,但一旦你度过了最初的适应期,就会发现其中蕴含的巨大能量。对我个人而言,最震撼的是关于系统启动流程的解析。从Bootloader到Zygote的孵化,每一步骤的耗时估算、关键决策点,都被作者用流程图和代码片段清晰地串联了起来。以往我们总是在讨论应用启动优化,但往往忽略了底层系统初始化带来的开销。这本书把这些“黑箱”流程揭开,让我们明白了为什么某些定制ROM的启动速度会有显著差异。这种对宏观架构和微观细节的平衡把握,是很多同类书籍难以企及的。它教会我的不仅仅是知识,更是一种系统性思考问题的工程哲学——任何一个看似孤立的现象,背后都有复杂的逻辑链条在支撑。

评分

窗口 UI 部分写的很还不错

评分

17/02/16 over。。拖延晚期啊,15年国庆时候就买了,今天才算是真正意义的看完

评分

看起来更像是卷二的续写,WMS,IMS,再结合卷二的PMS AMS 每个模块都很箱子,适合认真学习下

评分

窗口 UI 部分写的很还不错

评分

很详细的讲了wms的细节,从传感器开始的触摸事件流程,window的创建到显示的流程,动画的原理等等。知识太多有点目不暇接,4到6章非常非常非常值得看很多遍。

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.quotespace.org All Rights Reserved. 小美书屋 版权所有