目前无货,
欢迎选购其他类似产品。
前翻 后翻
正在播放... 已暂停   您正在聆听的 Audible 音频版本的样品。
了解更多信息
查看此图片

Android系统源代码情景分析(附CD光盘1张)

平均 3.9 星 57 条商品评论
| 天天低价·正品质优
|
分享
广告

显示所有 格式和版本 隐藏其他格式和版本
亚马逊价格
全新品最低价 非全新品最低价
Kindle电子书
 

click to open popover

无需Kindle设备,下载免费Kindle阅读软件,即可在您的手机、电脑及平板电脑上畅享阅读。

  • iPhone/iPad/Mac
  • Android手机或平板电脑

请输入您的手机号码,获取Kindle阅读软件的下载链接。



基本信息

  • 出版社: 电子工业出版社; 第1版 (2012年10月1日)
  • 平装: 830页
  • 语种: 简体中文
  • 开本: 16
  • ISBN: 9787121181085, 7121181088
  • 条形码: 9787121181085
  • 商品尺寸: 28 x 20.6 x 4 cm
  • 商品重量: 1.77 Kg
  • 品牌: 电子工业出版社
  • ASIN: B009OLU8EE
  • 用户评分: 平均 3.9 星 57 条商品评论
  • 亚马逊热销商品排名: 图书商品里排第150,563名 (查看图书商品销售排行榜)
  • 您想告诉我们您发现了更低的价格?

商品描述

编辑推荐

《Android系统源代码情景分析》编辑推荐:著名软件架构师、顾问、作家和演讲家TedNeward有一天和朋友Simone聊天时,谈到如何给初级程序员分配任务的问题。Simone用在墙上挂画这个例子作了一个巧妙的比喻。
你让一个初级员工在墙上挂一幅画,但是他从来没有干过这种事情。因为你知道怎么在墙上挂一幅画,并且觉得这是一件简单的事情,所以就没有向他解释如何去做。事实上,这个初级员工有很多细节问题是不清楚的,例如,要使用什么样的工具等。这时候就可能会出现两种情况。一种情况是他认为可以使用订书机和磁带机来把这幅画挂在墙上。二种情况是他会在Google上搜索,阅读参考书,并且向讨论组求助,最后认为应该要使用高级气动射钉枪来把这幅画挂在墙上。当你最终告诉这个初级员工要使用锤子和钉子来完成这件事情时,又会出现另外一个问题:他不知道如何有效地使用锤子和钉子来将一幅画挂在墙上。因为他从未见过锤子,不知道要用手来固定钉子,然后再用又圆又平的锤头来大力地将钉子打进墙里面去。
这个例子使得TedNeward想起了他刚开始学习XML时碰到的问题。TedNeward看到文档这样写:用SAX解析器读取XML文件,不要用DOM解析器,因为DOM解析器运行速度慢,并且占用内存多。TedNeward不解,问别人:为什么不能用DOM解析器来解析XML文件呢?难道就因为它的实现效果差吗?别人告诉他:不,如果你只是想获得作者和标题信息,那么何必将一个10M大小的XML文件全部加载到内存中去呢?TedNeward听了之后,说:我需要将一个完整的20KB大小的XML文件的内容映射到网页上去。这时候别人就告诉他:那你还是使用DOM解析器吧。
于是,TedNeward就思考这样一个问题:一个初级程序员如何才能从入门到精通一门新的技术?最后,TedNeward得出的结论是:初级程序员们必须学会向有经验的人提出问题,这样才会少走弯路,并且得到正确的答案。
在《Android系统源代码情景分析》的构思之初,我们同样也在思考这样一个问题:这本《Android系统源代码情景分析》应该怎么写,才能让一个从未接触过Android的程序员能够从入门到精通Android系统的实现原理?
《Android系统源代码情景分析》作者刚开始学习Linux内核知识时,面对着浩如烟海的源代码,根本就无从下手。后来就陆陆续续地在网上寻找学习资料。一段时间下来,学习资料是找到不少,也看了不少。但是接下来在阅读Linux内核的源代码时,总是感觉不能将那些相关的知识点粘合在一起形成一个完整的知识面。直到最后阅读了《Linux内核源代码情景分析》这本书之后,才有一种豁然开朗的感觉。《Linux内核源代码情景分析》一书的特点便是通过情景描述来分析Linux内核源代码,这样做的好处就是能够将那些相关的知识点粘合在一起形成一个完整的知识面。例如,在分析打开一个文件的过程时,会有针对性地介绍所涉及到的数据结构和算法,这样读者就可以对文件系统的实现原理有一个生动而深刻的理解。
想到了这一点之后,联想到前面所说的墙上挂画的例子,按照“情景”来学习一门新的技术不就正好是一个恰当的工具吗?于是,我们就决定参考《Linux内核源代码情景分析》一书的写法,按照情景来分析Android系统的源代码,使得读者可以对整个Android系统的实现原理有一个融会贯通的理解。
墙上挂画这个例子还告诉我们,有了工具之后,还需要正确有效地运用它,才能让它发挥应有的作用。毋容置疑,《Linux内核源代码情景分析》是一本经典的Linux内核书籍典范,但是相信阅读过这本书的读者普遍有这样一个感觉:在阅读的过程中稍感吃力,因此需要多次重复阅读,才能消化其中的知识。我们思考了这个问题,认为《Linux内核源代码情景分析》一书在以下两个方面稍有欠缺。
一方面是缺少一些原理描述图。例如,在按照情景来分析一个过程时,缺少相应的过程描述图。人的大脑对图像的认知是相当敏感的,当我们在使用文字来描述一个观点的时候,如果能够配合相应的图像来表达,那么这个观点就会相当的直觉,易于理解和接受。
第二方面是缺少一些使用示例。虽然有时候我们已经知道一个接口的实现原理了,但是当我们真正去使用它的时候,却不知道怎么下手。就好比我们已经知道画挂在墙上是因为它被钉子钉住在墙里了,但是这个钉子是如何钉住在墙里的呢?如果我们能够给出一个示例来说明钉子是如何被打进墙里去的,即先用手固定钉子,然后再用锤子大力将它打进墙里去,那么就能够更好地理解为什么可以用锤子和钉子来将画挂在墙上了。
认识到以上两点之后,《Android系统源代码情景分析》在写作的过程中,碰到一些比较复杂的知识点时,都会给出相应的原理描述图。例如,使用类关系图来描述组件间的关系模型,以及使用序列图来描述情景过程。同时,还会给出完整的使用示例来阐述这些知识点是如何被运用的。这些使用示例都是可以直接编译和运行的。通过这种原理和使用示例结合的写作方式,我们力图将Android系统的实现原理以具体、生动和深刻的形式表达出来。
本书在结合使用情景来阐述Android系统的实现原理的时候,为了做到全面、深入和细致,分析的源代码涉及到了Linux内核层、硬件抽象层(HAL)、运行时库层(Runtime)、应用程序框架层(Application Framework)以及应用程序层(Application)。这样就能使读者很好地去把握Android系统的整体架构,以及理解各个层次所承担的角色。
为了方便阐述Android系统的实现原理,《Android系统源代码情景分析》将内容划分为初识Android系统、Android专用驱动系统和Android应用程序框架三大篇章。
初识Android系统篇包含三个章节,介绍了源代码的下载、编译和运行,以及Android系统的智能指针和硬件抽象层。在应用程序框架层的Native代码中,大量的使用了智能指针,因此,在分析Android系统的源代码之前,我们需要对它的智能指针有所了解。而学习Android系统的硬件抽象层,能够使得我们迅速掌握Android系统的层次结构。
Android专用驱动系统篇也是包含三个章节,分析了Android系统在Linux内核中的三个专用驱动程序,分别是Logger日志驱动程序、Binder进程间通信驱动程序以及Ashmem匿名共享内存驱动程序。毋容置疑,这三个专用驱动,特别是Binder进程间通信驱动程序,构成了Android系统的坚实基础,学习它们对理解Android系统有非常大的帮助。
Android应用程序框架篇包含了十个章节,从应用程序组件、进程、消息和安装四个角度来系统地分析了Android应用程序的架构。我们知道,移动平台最核心的竞争力是运行在它上面的丰富的、高质量的应用程序,而这些丰富的、高质量的应用程序离不开优秀的应用程序基础设施和架构,因此,《Android系统源代码情景分析》花了很大的篇幅来介绍Android应用程序的框架。Android应用程序的框架是理解整个Android系统的一个很好的切入点,毕竟系统所做的一切都是为使得运行在它之上的应用程序有一个良好的用户体验,从而可以很好地为用户服务。
《Android系统源代码情景分析》的内容,初稿自于笔者的CSDN博客——老罗的Android之旅,使用的源代码是Android2.3的。当《Android系统源代码情景分析》发布时,Android系统的最新版本已经是4.1。但是,我们仍然坚持使用Android2.3的源代码来分析Android系统的实现原理,主要是基于以下两个理由。
一个理由是即使是在《Android系统源代码情景分析》发布之时,在所有的Android系统版本中,2.3的市场占用率仍然是占据冠军,达到67%,遥遥领先于排名第二的4.0,后者的市场占有率为18%。要知道,Android2.3是2010年12月发布的,它能长期占据着市场占有率冠军的位置,足以说明它的广泛性、稳定性和代表性。
第二个理由是Android系统的版本是不断向前进化的。即使今天我们基于最新的4.1的源代码来分布《Android系统源代码情景分析》,后面也会出现5.0、6.0和7.0等Android系统版本。但是,万变不离其宗,我们希望读者通过阅读《Android系统源代码情景分析》,一是可以掌握Android系统的基本实现原理,第二是学会分析Android系统的方法,即掌握分析Android系统的工具以及正确有效地使用这个工具。这样,无论Android系统的版本如何进化,读者都能够自行地学习和掌握它。
最后,《Android系统源代码情景分析》的顺利出版,要特别感谢广大的网友。感谢你们对CSDN博客——老罗的Android之旅的支持和鼓励。可以说,如果没有你们的支持和鼓励,就不会有《Android系统源代码情景分析》的出版。我们衷心希望能够通过这本《Android系统源代码情景分析》,可以帮助到大家全面、深入和细致地掌握Android系统,共同引领移动互联网新时代!

名人推荐

强大的罗大师,感谢你的Android之旅,我已看完你的6篇教程,虽然我目前还不太懂,但是我相信你就是我打开它的那把钥匙,再次感谢你的教程。
——@mutex_js
老罗,写的太精彩啦!不仅仅是在Android按键机制方面令人受益匪浅,给我在学习其他模块上也提供了一套很好的分析思路。非常感谢!
——@yuleslie
看你的文章,收获很多,分析得很透彻,思路清晰,前后呼应,成系统,对我帮助很大,非常感谢你的无私奉献!
——@kenen2006
你的博客给了我一种非常刺激的体验,让我更深层次地认识Android。非常感谢你的讲解,太棒了!
——@stevenhu_223
我真的想放弃这个行业,可我看到你的博客,让我看到了希望,让我充满了信心和坚定!
——@zhudeqing
看过几本Andriod方面的书,但还真比不上这里的博客。罗老师的Linux内核知识及对软件架构的知识积累用功很深,代码阅读能力也很强!膜拜!
——@herodie
我是看你的博客开始学Android的,写的真的太好了。每一个系列都自成一体,无需其他参考。从顶到下都能串到一起,这样看起来最痛快了!
——@hellowolrd
本人语言功底也不是很好,所以系统学习Android也经历了不少困难。3个多月了,反反复复阅读你的博文;每一次都有进步,每一次的进步也都有不同的方向。谢谢!技术的道路上真没有捷径,更不可以偷懒。我将不懈努力!谢谢博主,期待您能出书!
——@tankai19880619
刚看到老罗的这篇新作,还挺热乎的。忍不住分N口气读完,膜拜!读完后,有些有意思的想法,从文章本身来看,很精彩。这篇文章老罗至少说明了一下问题:1.两种最典型的使用场景及他们的区别(UI相关与否);2.引出来两种线程消息处理模型;3.用实例解释两种模型是如何使用的;4.最后介绍两种模型的是怎样实现的。该文章不但告诉我们what(该文的主旨)、how(怎样使用),还有why(怎么实现)。偶的神,一篇文章里写了这么多,还能写的这么清楚。不容易啊!
——@rambo2188
太牛了!我是一个刚从事Android开发的新人,你的文章真是入木三分,读了很有启发,你的这种分析Android方式很棒!为了造福更多的Android学习者,建议你出书!
——@yang105
我觉得也许学习这些知识并不算难,可是要做到时刻有一个清晰的思路去学并且能够把学过东西用通俗易懂的话语表达出来挺难的。必尽自身知识有限,有些东西可能一下子无法深刻理解。楼主是怎么做到的呢?感觉楼主的每篇文章都讲的精练透彻,主要是能把问题全讲出来。我想楼主的知识面一定很广!
——@wantianpei


57 个顾客评论

3.9 颗星,最多 5 颗星

评论该商品

与其他买家分享您的想法

显示 1-8 条评论,共 57 条评论

2015年2月5日
版本: 平装已确认购买
2017年2月9日
版本: Kindle电子书已确认购买
2014年3月26日
版本: Kindle电子书已确认购买
5 个人发现此评论有用
回应 报告滥用情况
2017年9月6日
版本: 平装已确认购买
2014年10月24日
版本: 平装已确认购买
2014年6月15日
版本: 平装已确认购买
2013年6月3日
版本: 平装已确认购买
2014年8月22日
版本: 平装已确认购买