| 书[0名0]: | 深入理解Android:卷III|4731178 |
| 图书定价: | 89元 |
| 图书作者: | 张[0大0]伟 |
| 出版社: | 机械工业出版社 |
| 出版日期: | 2015/8/1 0:00:00 |
| ISBN号: | 9787111507369 |
| 开本: | 16开 |
| 页数: | 539 |
| 版次: | 1-1 |
| 作者简介 |
| 张[0大0]伟 资深Android系统开发工程师,现就职于索尼移动。从2011年开始从事Android开发,专注于Android系统源代码的研究、定制与维护工作,对Android的架构设计与运行原理有着深入的认识与实践经验,其中对UI相关模块、多媒体系统尤为擅长。曾主持了Android多窗口、多任务以及单手操作等系统定制的开发工作。此外对于其他开发平台如.NET亦有相[0当0]的经验。 |
| 内容简介 |
| 本书是Android经典[0畅0]销书系(对Android系统源代码的分析为系统和细致)“深入理解Android”系列Framework卷的[0第0]III卷,从源代码的角度,对Android系统的Audio和UI两[0大0]功能的相关模块的实现原理和工作机制做了系统且详细的分析,填补了市场的空白。 本书在逻辑上分为4个部分: Part 01([0第0]1—2章):这是本书的基础部分,[0首0]先介绍了Android源码环境的搭建、编译和调试;然后讲解了Android进程间通信与任务调度的工具Binder与MessageQueue。这两项基础工作是深入研究Android前必须做的功课。 Part 02([0第0]3章):详细分析了AudioService服务的实现,包括音量管理、音频外设管理、AudioFocus机制的实现等内容。 Part 03([0第0]4-6章):这是本书的核心内容之一,详细分析了Android UI的通用实现,依次剖析了WindowManagerService、Android输入系统、Android控件系统的工作原理。 Part 04([0第0]7—8章):主要分析了SystemUI和Android壁纸相关服务的实现,包括StatuSBarManagerService与[0No0]tificationManagerService两个系统服务,以及W[0all0]paperManagerService系统服务、动态壁纸与静态壁纸的工作原理等内容。 除此之外,在对海量的Android源代码进行分析的过程中,本书尽可能地对其中的精妙之处进行了分析和解读,目的是希望帮助读者[0领0]悟其中的[0优0]秀设计思想和方[0法0]。 |
| 目录 |
推荐序 前 言 [0第0]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 [0第0]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 [0第0]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 [0第0]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 [0第0]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基础[0知0]识:I[0No0]tify与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 [0第0]6章 深入理解控件系统275 6.1 初识Android的控件系统276 6.1.1 另一种创建窗口的方[0法0]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 [0第0]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 通[0知0]信息的管理与显示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 [0第0]8章 深入理解Android壁纸496 8.1 初识Android壁纸497 8.2深入理解动态壁纸498 8.2.1启动动态壁纸的方[0法0]498 8.2.2壁纸服务的启动原理498 8.2.3 理解UpdateSurface()方[0法0]510 8.2.4 壁纸的销毁515 8.2.5 理解Engine的回调516 8.3 深入理解静态壁纸—ImageW[0all0]paper519 8.3.1 获取用作静态壁纸的位图519 8.3.2 静态壁纸位图的设置522 8.3.3 连接静态壁纸的设置与获取—W[0all0]paperObserver524 8.4 WMS对壁纸窗口的特殊处理526 8.4.1 壁纸窗口Z序的确定527 8.4.2 壁纸窗口的可见性533 8.4.3 壁纸窗口的动画535 8.4.4 壁纸窗口总结538 8.5 本章小结539 |
| 编辑推荐 |
| 经典[0畅0]销书系“深入理解Android”系列Framework卷完结篇,数十万Android开发工程师翘[0首0]以盼 从源代码层面全面、详细剖析了Android 框架UI系统的实现原理和工作机制,以及[0优0]秀代码的设计思想,填补市场空白 要想充分理解并用好Android系统,没有捷径,从它的源代码入手是好的办[0法0]。早在2011年,我们就洞察到了广[0大0]Android开发者的这一需求,于是我们与[0国0]内[0知0][0名0]的Android技术专家邓凡平先生一起规划了这套“深入理解Android”丛书。从一开始,我们就对这套书有系统的规划(详见本书的推荐序),对整个Android系统做了细粒度的划分,涵盖Android系统的每一个模块和细节。目前,这套书已经出版5本,在市场上引起了强烈的反响,几乎成为深入、系统了解Android工作原理的必读之书。 本书是该系列Framework卷的[0第0]III卷,分析的主要对象是Android系统的UI,这应该是目前该[0领0]域为系统和深入的资料。 |
不得不说,这本《深入理解Android:卷III 计算机与互联网》的书名就充满了吸引力,尤其对于我这种对技术细节充满探究欲的程序员来说。虽然我才刚开始翻阅,但书中的一些章节介绍,例如关于Android的ART虚拟机、JNI接口以及底层库的编译与加载,已经让我眼前一亮。我一直觉得,理解这些底层的运作机制,对于编写高质量、高性能的Android应用至关重要。这本书的编排方式,似乎是将Android置于一个更广阔的计算机科学背景下进行讲解,这让我感到非常兴奋。它不仅仅是教你如何使用API,而是让你理解API背后的原理。尤其是在“计算机与互联网”这个大主题下,它必然会涉及诸如数据结构、算法、并发编程等基础知识,这些都是构建一切技术大厦的基石。我期待通过这本书,能够将我对Android开发的理解,提升到一个全新的维度,能够从更深层次去思考和解决问题,而不仅仅停留在表面的功能实现。
评分最近在阅读《深入理解Android:卷III 计算机与互联网》这本书,虽然还在学习的初期阶段,但我已经被其深度和广度所折服。作为一名对移动开发有浓厚兴趣的工程师,我一直想了解Android背后的原理,以及它如何与更广泛的计算机科学理论相结合。这本书恰好满足了我的需求。我尤其期待书中对Android的图形渲染管线、多媒体处理以及安全机制的详细解读。这些方面往往是应用性能和用户体验的关键,但又涉及复杂的底层技术。此外,“计算机与互联网”这个主题的引入,让我看到了作者的视野之宏大,它不仅仅关注Android本身,还将其置于一个更大的技术背景下进行分析,比如网络通信的效率、数据传输的安全性等。这对于我理解如何构建健壮、高效的互联网应用至关重要。我相信,通过这本书的学习,我能够构建更扎实的底层功底,从而在未来的开发工作中,能够应对更复杂的挑战。
评分拿到这本《深入理解Android:卷III 计算机与互联网》的时候,我正在为解决一个棘手的跨进程通信问题而头疼。虽然我平时开发Android应用,但对于底层的IPC机制一直是一知半解,更不用说它和TCP/IP协议栈的关系了。这本书的出现简直是雪中送炭。虽然我还没来得及逐字逐句地阅读,但仅从其对操作系统进程调度、内存管理以及网络通信原理的深入剖析,我就能预感到它能为我提供强大的理论支撑。想象一下,当我对Android的Binder机制、Socket编程以及HTTP协议有更深刻的理解后,再回过头来看那些看似复杂的应用场景,就能迎刃而解了。我尤其看重书中对“互联网”这部分的阐述,这意味着它会探讨Android应用如何在复杂的互联网环境中进行数据交互,如何处理网络延迟、丢包等问题,这些都是日常开发中绕不开的挑战。这本书的价值,在于它能从根本上解决我面临的技术难题,让我不再是“知其然”,而是“知其所以然”。
评分在我的书架上,《深入理解Android:卷III 计算机与互联网》这本书占据了一个非常显眼的位置,尽管我尚未能完全消化其内容,但其所传递的理念和前沿性已经让我印象深刻。我一直关注着Android生态的发展,也注意到近年来Android在性能优化、安全性和跨设备互联方面的进步。这本书的出现,似乎正是对这些趋势的回应。我对其中关于Android系统服务、框架层以及与Linux内核交互的部分尤为感兴趣。我相信,深入理解这些内容,能够帮助我更好地把握Android系统演进的方向,预测未来的技术趋势,并将其应用到我的实际工作中。同时,书中对“互联网”这一块的阐述,也让我看到了其对现代移动互联网应用开发的全景式思考,它不仅仅局限于Android本身,而是将其置于整个技术生态中去审视。这对于我这样希望保持技术领先性的开发者来说,无疑是一份宝贵的财富。
评分这本《深入理解Android:卷III 计算机与互联网》真是让人爱不释手!虽然我还没来得及深入钻研书中的技术细节,但光是翻阅目录和前言,就已然感受到其磅礴的气势和深厚的底蕴。作为一名对计算机底层原理充满好奇的开发者,我一直渴望能够跳出应用的框架,去窥探Android系统是如何运作的,特别是它与更广泛的计算机科学和互联网技术是如何交织在一起的。这本书的标题就精准地击中了我的痛点。我尤其对其中涉及的操作系统原理、网络协议栈以及Android特有的进程管理和内存模型的部分充满期待。我相信,通过学习这本书,我能更清晰地理解Android应用程序的性能瓶颈是如何产生的,以及如何从更宏观的角度去优化它们。它不仅仅是一本关于Android的书,更像是一扇通往更广阔的计算机世界的大门,让我能够将零散的知识点串联起来,形成一个完整的知识体系。我迫不及待地想在工作之余,沉浸在这本书所构建的知识海洋中,汲取养分,提升自己的技术视野。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有