由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
[正版]3683060|正版 深入理解Android:卷II 按需印刷邓凡平著 计算机软件与程序设计移动开发An
¥ ×1
店铺公告
为保障消费者合理购买需求及公平交易机会,避免因非生活消费目的的购买货囤积商品,抬价转售等违法行为发生,店铺有权对异常订单不发货且不进行赔付。异常订单:包括但不限于相同用户ID批量下单,同一用户(指不同用户ID,存在相同/临近/虚构收货地址,或相同联系号码,收件人,同账户付款人等情形的)批量下单(一次性大于5本),以及其他非消费目的的交易订单。 温馨提示:请务必当着快递员面开箱验货,如发现破损,请立即拍照拒收,如验货有问题请及时联系在线客服处理,(如开箱验货时发现破损,所产生运费由我司承担,一经签收即为货物完好,如果您未开箱验货,一切损失就需要由买家承担,所以请买家一定要仔细验货), 关于退货运费:对于下单后且物流已发货货品在途的状态下,原则上均不接受退货申请,如顾客原因退货需要承担来回运费,如因产品质量问题(非破损问题)可在签收后,联系在线客服。
书名: | 【按需印刷】深入理解Android:卷II[按需印刷]|3683060 |
图书定价: | 79元 |
图书作者: | 邓凡平 |
出版社: | 机械工业出版社 |
出版日期: | 2012/8/1 0:00:00 |
ISBN号: | 9787111389187 |
开本: | 16开 |
页数: | 440 |
版次: | 1-1 |
作者简介 |
邓凡平,资深Android开发工程师和系统工程师,热衷于Android源代码的研究,对Android的架构设计和实现原理有非常深刻的认识和理解,经验十分丰富。《深入理解Android:卷I》的作者,同时也是“深入理解Android”系列图书的总策划。目前就职于国内领先的Android企业中科创达(ThunderSoft),负责AndroidFramework的开发和维护。喜欢钻研,乐于分享,活跃于CSDN、51CTO和开源中国等专业技术社区,撰写的AndroidFramework源码分析的系列文章深受读者欢迎。此外,他对Linux内核、C/C++/Python相关的技术,以及高性能网络服务器和多核并行开发等也有一定的研究。 |
内容简介 |
《深入理解Android:卷II》是“深入理解Android”系列的第二本,第一本书上市后得到了广大读者的高度评价,在Android开发者社群内口口相传。本书不仅继承了第一本的优点、改正了其在细微处存在的一些不足,而且还在写作的总体思想上进行了创新,更强调从系统设计者的角度去分析Android系统中各个模块内部的实现原理和工作机制。从具体内容上讲,本书的重点是Android Framework的Java层,对Java层涉及的核心模块和服务进行了深入而细致的分析。通过本书,读者不仅能对Android系统本身有更深入的理解,而且还能掌握分析大型复杂源代码的能力。 全书共8章:第1章介绍了阅读本书所需要做的准备工作,包括Android 4.0源码的下载和编译、Eclipse环境的搭建,以及Android系统进程(system_process)的调试等;第2章对Java Binder和MessageQueue的实现进行了深入分析;第3章详细剖析了SystemServer的工作原理,这些服务包括EntropyService、DropboxManagerService、DiskStatsService、DeviceStorageMonitorService、SamplingProfilerService和ClipboardService;第4章对系统中负责Package信息查询和APK安装、卸载、更新等工作的服务PackageManagerService进行了详细分析;第5章则对Android系统中负责电源管理的核心服务 PowerManagerService的原理进行了一番深入的分析;第6章以ActivityManagerService为分析重点,对它的启动、Activity的创建和启动、BroadcastReceiver的工作原理、Android中的进程管理等内容展开了较为深入的研究;第7章对ContentProvider的创建和启动、SQLite、Cursor query和close的实现等进行了深入分析;第8章以ContentService和AccountManagerService为分析对象,介绍了数据更新通知机制的实现,以及账户管理和数据同步等相关知识。 |
目录 |
《深入理解Android:卷II》 前 言 第1章 搭建Android源码工作环境 / 1 1.1 Android系统架构 / 2 1.2 搭建开发环境 / 3 1.2.1 下载源码 / 3 1.2.2 编译源码 / 4 1.2.3 利用Eclipse调试system_process / 5 1.3 本章小结 / 11 第2章 深入理解Java Binder和MessageQueue / 12 2.1 概述 / 13 2.2 Java层中的Binder架构分析 / 13 2.2.1 Binder架构总览 / 13 2.2.2 初始化Java层Binder框架 / 14 2.2.3 addService实例分析 / 17 2.2.4 Java层Binder架构总结 / 26 2.3 心系两界的MessageQueue / 27 2.3.1 MessageQueue的创建 / 27 2.3.2 提取消息 / 28 2.3.3 nativePollOnce函数分析 / 31 2.3.4 MessageQueue总结 / 41 2.4 本章小结 / 42 第3章 深入理解SystemServer / 44 3.1 概述 / 45 3.2 SystemServer分析 / 45 3.2.1 main函数分析 / 45 3.2.2 Service群英会 / 48 3.3 EntropyService分析 / 49 3.4 DropBoxManagerService分析 / 50 3.4.1 DBMS构造函数分析 / 51 3.4.2 dropbox日志文件的添加 / 51 3.4.3 DBMS和settings数据库 / 56 3.5 DiskStatsService和DeviceStorageMonitorService分析 / 56 3.5.1 DiskStatsService分析 / 56 3.5.2 DeviceStorageManagerService分析 / 58 3.6 SamplingProfilerService分析 / 60 3.6.1 SamplingProfilerService构造函数分析 / 61 3.6.2 SamplingProfilerIntegration分析 / 62 3.7 ClipboardService分析 / 64 3.7.1 复制数据到剪贴板 / 64 3.7.2 从剪切板粘贴数据 / 67 3.7.3 CBS中的权限管理 / 69 3.8 本章小结 / 73 第4章 深入理解PackageManagerService / 74 4.1 概述 / 75 4.2 初识PackageManagerService / 76 4.3 PKMS的main函数分析 / 77 4.3.1 构造函数分析之前期准备工作 / 78 4.3.2 构造函数分析之扫描Package / 90 4.3.3 构造函数分析之扫尾工作 / 105 4.3.4 PKMS构造函数总结 / 105 4.4 APK Installation分析 / 105 4.4.1 adb install分析 / 105 4.4.2 pm分析 / 107 4.4.3 installPackageWithVerification函数分析 / 109 4.4.4 APK 安装流程总结 / 121 4.4.5 Verification介绍 / 122 4.5 queryIntentActivities分析 / 124 4.5.1 Intent及IntentFilter介绍 / 124 4.5.2 Activity信息的管理 / 125 4.5.3 Intent 匹配查询分析 / 128 4.5.4 queryIntentActivities总结 / 131 4.6 installd及UserManager介绍 / 131 4.6.1 installd介绍 / 131 4.6.2 UserManager介绍 / 136 4.7 本章学习指导 / 138 4.8 本章小结 / 138 第5章 深入理解PowerManagerService / 139 5.1 概述 / 140 5.2 初识PowerManagerService / 140 5.2.1 PMS构造函数分析 / 141 5.2.2 init分析 / 141 5.2.3 systemReady分析 / 147 5.2.4 BootComplete处理 / 148 5.2.5 初识PowerManagerService总结 / 149 5.3 PMS WakeLock分析 / 149 5.3.1 WakeLock客户端分析 / 149 5.3.2 PMS acquireWakeLock分析 / 151 5.3.3 Power类及LightService类介绍 / 160 5.3.4 WakeLock总结 / 163 5.4 userActivity及Power按键处理分析 / 164 5.4.1 userActivity分析 / 164 5.4.2 Power按键处理分析 / 167 5.5 BatteryService及BatteryStatsService分析 / 168 5.5.1 BatteryService分析 / 169 5.5.2 BatteryStatsService分析 / 172 5.5.3 BatteryService及BatteryStatsService总结 / 182 5.6 本章学习指导 / 183 5.7 本章小结 / 183 第6章 深入理解ActivityManagerService / 184 6.1 概述 / 185 6.2 初识ActivityManagerService / 186 6.2.1 ActivityManagerService的main函数分析 / 187 6.2.2 AMS的 setSystemProcess分析 / 197 6.2.3 AMS的 installSystemProviders函数分析 / 202 6.2.4 AMS的 systemReady分析 / 211 6.2.5 初识ActivityManagerService总结 / 218 6.3 startActivity分析 / 219 6.3.1 从am说起 / 219 6.3.2 AMS的startActivityAndWait函数分析 / 221 6.3.3 startActivityLocked分析 / 230 6.4 Broadcast和BroadcastReceiver分析 / 265 6.4.1 registerReceiver流程分析 / 267 6.4.2 sendBroadcast流程分析 / 272 6.4.3 BROADCAST_INTENT_MSG消息处理函数 / 276 6.4.4 应用进程处理广播分析 / 282 6.4.5 广播处理总结 / 284 6.5 startService之按图索骥 / 285 6.5.1 Service知识介绍 / 285 6.5.2 startService流程图 / 286 6.6 AMS中的进程管理 / 287 6.6.1 Linux进程管理介绍 / 287 6.6.2 关于Android中的进程管理的介绍 / 289 6.6.3 AMS进程管理函数分析 / 294 6.6.4 AMS进程管理总结 / 305 6.7 App的 Crash处理 / 305 6.7.1 应用进程的Crash处理 / 306 6.7.2 AMS的handleApplicationCrash分析 / 306 6.7.3 AppDeathRecipient binderDied分析 / 309 6.7.4 App的Crash处理总结 / 313 6.8 本章学习指导 / 314 6.9 本章小结 / 315 第7章 深入理解ContentProvider / 316 7.1 概述 / 317 7.2 MediaProvider的启动及创建 / 318 7.2.1 Context的getContentResolver函数分析 / 318 7.2.2 MediaStore.Image.Media的query函数分析 / 319 7.2.3 MediaProvider的启动及创建总结 / 329 7.3 SQLite创建数据库分析 / 330 7.3.1 SQLite及SQLiteDatabase家族 / 330 7.3.2 MediaProvider创建数据库分析 / 335 7.3.3 SQLiteDatabase创建数据库的分析总结 / 344 7.4 Cursor 的query函数的实现分析 / 345 7.4.1 提取query关键点 / 346 7.4.2 MediaProvider 的query分析 / 349 7.4.3 query关键点分析 / 356 7.4.4 Cursor query实现分析总结 / 368 7.5 Cursor close函数实现分析 / 368 7.5.1 客户端close的分析 / 369 7.5.2 服务端close的分析 / 371 7.5.3 finalize函数分析 / 372 7.5.4 Cursor close函数总结 / 373 7.6 ContentResolver openAssetFileDescriptor函数分析 / 373 7.6.1 openAssetFileDescriptor之客户端调用分析 / 374 7.6.2 ContentProvider的 openTypedAssetFile函数分析 / 376 7.6.3 跨进程传递文件描述符的探讨 / 379 7.6.4 openAssetFileDescriptor函数分析总结 / 384 7.7 本章学习指导 / 384 7.8 本章小结 / 385 第8章 深入理解ContentService和AccountManagerService / 386 8.1 概述 / 387 8.2 数据更新通知机制分析 / 387 8.2.1 初识ContentService / 388 8.2.2 ContentResovler 的registerContentObserver分析 / 389 8.2.3 ContentResolver的 notifyChange分析 / 391 8.2.4 数据更新通知机制总结和深入探讨 / 393 8.3 AccountManagerService分析 / 395 8.3.1 初识AccountManagerService / 396 8.3.2 AccountManager addAccount分析 / 402 8.3.3 AccountManagerService的分析总结 / 414 8.4 数据同步管理SyncManager分析 / 415 8.4.1 初识SyncManager / 415 8.4.2 ContentResolver 的requestSync分析 / 424 8.4.3 数据同步管理SyncManager分析总结 / 436 8.5 本章学习指导 / 437 8.6 本章小结 / 437 “深入理解Android”系列书籍的规划路线图 / 438 |
编辑推荐 |
市面上关于Android源码分析的书非常多,但是没有一本书的分析粒度像本书这样细致。Android系统本身非常庞大,源代码错综复杂,的确很难想象仅靠一本书就能透彻分析整个系统的原理。“深入理解Android”系列图书考虑到了这一点,于是每一本书只专注于一个大的主题,卷I和卷II关注的都是Android的框架层,卷I针对的是NativeFramework,卷II针对的是JavaFramework。如果想从Android系统设计者的角度彻底理解整个系统的架构思想和设计原理,以及系统中各个服务和模块之间错综复杂的关系,“深入理解Android”系列图书应该是目前最好的选择之一! ——51CTO移动开发频道(http://mobile.51cto.com/) “深入理解Android”系列的卷I上市后,既叫好,又叫座,在Android开发者圈子里反响强烈。从Android源代码分析的角度来讲,该系列书从内容和分析方法上确实值得称道,不仅能体现作者的技术水准,而且能看出作者的用心良苦。在内容细节和作者自己对Android系统的认识深入程度上,卷II在卷I更上一层楼,内容更加精彩。不仅深入地分析了JavaFramework层各种服务和模块的工作原理和实现机制,而且还理清了它们之间的关系。对于想提高Android开发水平的读者来说,本书值得反复研读! ——开源中国社区(http://www.oschina.net/) |
本书主要内容及特色本书是笔者“深入理解Android”系列的第二本,这一本将关注重点放在了Android Framework的Java层。在众多可供分析的知识点中,笔者另辟蹊径,选择了SystemServer中的服务(Service)作为主人公。这些Service大体可由图1来表示。 图1 SystemServer中的服务由图1可知,SystemServer中的服务可划分为7大类共43项(包括Watchdog在内):位于第一大类的是Android的核心服务,如ActivityManagerService、WindowManager-Service等。位于第二大类的是和通信相关的服务,如Wifi的相关服务、Telephone的相关服务。位于第三大类的是和系统功能相关的服务,如AudioService、MountService、UsbService等。位于第四大类的是BatteryService、VibratorService等服务。位于第五大类的是EntropyService、DiskStatsService、Watchdog等相对独立的服务。位于第六大类的是蓝牙服务。位于第七大类的是UI方面的服务,如状态栏服务、通知管理服务等。以上这些服务就是Android Framework Java层的核心。毫不夸张地说,它们也是Android系统的基石。另外,这些服务的内容远非一本书所能囊括。作为Android Java层Framework分析的先头部队,本书涵盖了以下内容:第1章,介绍了阅读本书需要做的一些准备工作,包括Android 4.0源码的下载和编译、Eclipse开发环境的搭建,以及Android系统进程(system_process)的调试等。第2章,介绍了Java Binder和MessageQueue的实现。第3章,介绍了SystemServer,并分析了图1中第五类包含的服务的工作原理。这些服务包括EntropyService、DropBoxManagerService、DiskStatsService、DeviceStorageMonitorService、SamplingProfilerService和ClipboardService。第4章,分析了PackageManagerService,该服务负责Android系统中的Package信息查询和APK安装、卸载、更新等方面的工作。第5章,讲解了PowerManagerService,它是Android中电源管理的核心服务。本章对其中的WakeLock、Power按键处理、BatteryStatsService和BatteryService都做了一番较为深入的分析。第6章,以ActivityManagerService为分析重点,该服务是Android 的核心服务。本章对ActivityManagerService的启动、Activity的创建和启动、BroadcastReceiver的工作原理、Android中的进程管理等内容进行了较为深入的研究。第7章,对ContentProvider的创建和启动、SQLite相关知识、Cursor query和close的实现等进行了较为深入的分析。第8章,以ContentService和AccountManagerService为分析对象,介绍了数据更新通知机制的实现、账户管理和数据同步等方面的知识。图1中的其他服务将会在“深入理解Android”系列的其他书中详细分析。该系列书的规划请见本书最后面的“深入理解Android系列图书路线图”。本书以直接剖析源码的方式进行讲解,旨在引领读者一步步深入于Android系统中相关模块的内部原理,去理解它们是如何实现、如何工作的。在分析过程中,笔者根据个人研究Android代码的心得,采用了精简流程和逐个击破的方法。同时,笔者还提出了一些难度不大的知识点、相关的补充阅读资料,甚至笔者在实际项目中遇到的开放式问题,留给读者自行研究和探讨。总之,笔者希望读者在阅读完本书后,至少能有以下两个收获:能从“基于Android并高于Android”的角度来看待和分析Android。能初步具有大型复杂代码的分析能力。读者对象适合阅读本书的读者包括:(1)Android应用开发工程师虽然应用开发工程师平常接触的多是Android SDK,但是只有更深入地理解了Android系统运行原理,才能写出更健壮、更高效的模块。(2)Android系统开发工程师系统开发工程师常常需要深入理解系统的运转过程,而本书所涉及的内容正是他们在工作和学习中最想了解的。那些对具体服务(如ActivityManagerService、PackageManagerService)感兴趣的读者,也可以单刀直入,阅读本书相关章节。(3)对Android系统运行原理感兴趣的读者这部分读者需要具有基本的Android开发知识基础。如何阅读本书本书是针对Android源码进行分析的,而源码文件所在的路径一般都很长,例如,文件AndroidRuntime.cpp的真实路径是frameworks/base/core/jni/AndroidRuntime.cpp。为了行文方便,在各章节开头,均把本章涉及的源码路径全部列出,而在具体分析源码时,则只列出该源码的文件名。例如:[-->AndroidRuntime.cpp]//这里是源码和一些注释另外,本书在描述类之间的关系及函数调用流程上,使用了UML的静态类图及序列图。UML是一个强大的工具,但它的建模规范过于烦琐,为更简单清晰地描述事情的本质,本书并未完全遵循UML的建模规范。这里仅举一例,如图2所示。图2 UML示例图在图2中:外部类内部的方框用于表示内部类。另外,“外部类A.内部类B”也用于表示内部类。接口和普通类用同一种框图表示。本书所使用的UML图都比较简单,读者不必花费大量时间专门学习UML。这里有必要提醒一下,要阅读此书,应具有Java基本知识。另外,本书和《深入理解Android 卷I》(简称“卷I”)部分章节有一定联系,主要集中在Binder和MessageQueue部分。读者可将“卷I中”这部分内容作为补充阅读资料来学习。卷I部分内容的电子版下载地址为:http://download.csdn.net/detail/hzbooks/3677793。本书涉及的Android 4.0源码以及一些开发工具的下载地址为:http://115.com/folder/fauqpj0t#Android-ICS-SOURCE-CODE。勘误和支持由于作者的水平有限,加之写作时间仓促,书中难免会出现一些错误或不准确的地方,恳请读者批评和指正。若有问题,可通过邮箱或在博客上留言与笔者共同讨论。笔者的联系方式是:邮箱:fanping.deng@gmail.com博客:blog.csdn.net/innost、cnblogs.net/innost和http://my.oschina.net/innost/blog致谢本书即将付梓!首先要感谢杨福川编辑的大力支持。另外,要感谢本书的审稿编辑姜影。再一次感谢我所在的中科创达(ThunderSoft)公司。有幸工作在这样一个互相信任、互相鼓励、平等和开放式的环境中,我才能完成本书。公司领导所给予的机会和挑战,时时鞭策着我保持虚心学习的心态。此外,我所在团队的各位同仁也给予了我不少支持和帮助。本书出版之日,将是我们团队为之努力奋斗的Android系统高效、稳定运行于客户手机之时!一如既往地感谢妻子和家人,他们是我奋斗的动力。谢谢在人生和职业道路上曾给予我指导的诸位师长。当然,最应感谢的还是肯花费宝贵时间和精力关注本书的读者,你们的意见和建议,将会使我获得巨大的精神财富!邓凡平 于北京, 中科创达(ThunderSoft)公司 |
本店所售图书均为正版书籍
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格