暂时没有全本,只有样张。电子版可以到亚马逊买kindle版或者多看买epub版。
Ⅱ Android系统源代码情景分析 这本书有人看过吗
II和III来表示,错误所在的页码使用字母P来表示。
1. P3,倒数第2行(III):sudo add-apt-repository ppa:ferramrobert/java。由于License问题(http://askubuntu.com/questions/109209/sun-java6-plugin-has-no-installation-candidate),官方的Sun JDK6不能在Ubuntu上发布,因此,现在从下载源ferramrobert已经下载不到JDK6来安装了,可以通过修改安装源来解决这个问题,如下所示:
A. sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse"
B. sudo apt-get update
C. sudo apt-get install sun-java6-jre sun-java6-plugin
Ⅲ 有研究android系统源码的博客吗
我干了3年Android sdk开发,觉得到了瓶劲没法更进一步,于是花了一年多点时间,大概摸到点门径。根据前辈的经验,Android底层完全入门需要两年。
先说下我的入门过程:
第零步,下载源码,我下的4.2的,框架层源码10G,内核2G多,ctags给框架层建的标签文件都有600M,当时让我有点震撼,用的vim+ctags+cscope来阅读,还算不错,架构挺清晰的。
第一步,我找到了一本好书《Android的设计与实现 第一卷》它讲了Android框架层的启动,初始化,服务框架初始化,Binder,消息循环,PackageManagerService,ActivityManagerService。据作者说后面会出讲UI子系统的第二卷,拭目以待。其实这本书看了几十页我就发现需要第二步的知识,否则看不下去,于是跳去第二步。
第二步,学习Linux系统编程,在看《Android的设计与实现》的时候我发现,框架层的Native部分,全是Linux编程。为了掌握这部分知识,我花了4个月学习了《Linux系统编程手册》(TLPI)这本1000多页的书,我以前是搞WIndows文件系统这块的,所以C语言还比较熟,TLPI的习题很有意思,量也比较大,坚持下来还是收获很多。
第三步,花了4个月学习了一些Linux内核的知识,看了LKD,PLKA看了一半多。越学越没底,觉得不懂得越来越多,不过这个也正常,只有靠慢慢磨,估计以后要不断的磨这块。
第四步,回头看Android源码,这次一口气看完了《Android的设计与实现 第一卷》,终于对框架层有了谱。同时真的数次把我看晕,前面看Linux内核源码都没这么晕,不断在Java层和Native层之间跳有点磨脑浆。其中我又觉得Java的基础没有打太牢,回去补了一个月的《Core Java》第八版。但是这书没有涉及UI子系统,于是又看了《Android内核剖析》
第五步,《Android内核剖析》(这本书实际上是讲框架层的,作者也是个搞嵌入式的,所以他在写框架层的时候文笔不太好,很罗嗦,不过还是有很多看点,到他后来写做ROM,玩开发板时估计是说到了他的本行,一下子遛起来了看得出还是挺有水平的,这本书知识有点旧毕竟讲的是2.3很多代码已经过时,但是作者很多点子很有参考价值)这本书讲UI子系统和按键/触摸消息处理系统还是很有分量的,尤其13章View绘制那里,结合源码研究很有收获。而后面他讲编译框架和ROM相关的东西都是挺宝贵的资料。
第六步,为了再补一下其他诸如电源管理模块等子系统的知识看了,《深入理解android》系列,个人认为这个系列看起来有点不太舒服,不过作为补充印证还是比较有价值。
第七步,《Android系统源代码情景分析》,罗升阳的源码分析大作,比《Android的设计与实现》分析得更细致,但缺点是涉及到模块比较少,选用的源码也比《Android的设计与实现》更旧一点。看完书后需要去研究作者的博客,东西挺多的,一定让你满意。
第八步,买块开发板自己玩。这步我还没走到,原因是我觉得我还差点准备知识。可能要再几个月,到时准备入块6410或者树莓派。
最后,由于我11年以前都是搞Windows这块的,所以对Linux知识不是很了解,不得已看了这么些书,如果是一直做Linux的人,很多步骤估计可以省掉了。直接上源码才是正道。
我本身做着移动GIS开发的工作,学框架层全是因为兴趣,但招聘平台Android框架层开发人员还是蛮有竞争力的有不少定制ROM,智能电视的工作都处于人才难求状态,毕竟有一定的门槛,现在各种ios培训,让奔着钱干开发的人纷纷涌入,而ios只能干sdk开发的缺点就暴露出来了,一堆新手老手,菜鸟大牛全挤在SDK开发这块,我觉得不太妙。 反观Android这边,虽然入门菜鸟没有搞ios来钱,但是可持续性很好,从sdk-》框架》驱动》内核这样干下去。干着干着发现自己渐渐变成了Linux开发者/嵌入式开发者的人也不少,新人,老手,菜鸟大牛各居其位,层次性很好。
转载
Ⅳ 求一本Android学习进阶的红宝书。程度就好比View树的绘制过程或者自定义控件等难度的
android疯狂讲义+android从入门到精通: 入门到进阶中级差不多了
接下来:
Android系统源代码情景分析
深入理解Android内核设计思想
等等的一些。
多关注一些开源项目,多看多实践,多google,一步步踏踏实实的进步就OK了。
其实我最想推荐的是官方文档和源码!
希望能帮到您。
Ⅳ android系统源代码情景分析 需要具备什么基础知识
Android系统的源代码非常庞大和复杂,我们不能贸然进入,否则很容易在里面迷入方向,进而失去研究它的信心。我们应该在分析它的源代码之前学习好一些理论知识,下面就介绍一些与Android系统相关的资料。
我们知道,Android系统是基于Linux内核来开发的,在分析它在运行时库层的源代码时,我们会经常碰到诸如管道(pipe)、套接字(socket)和虚拟文件系统(VFS)等知识。此外,Android系统还在Linux内核中增加了一些专用的驱动程序,例如用于日志系统的Logger驱动程序、用于进程间通信的Binder驱动程序和用于辅助内存管理的匿名共享内存Ashmem驱动程序。在分析这些Android专用驱动程序的时候,也会碰到Linux内核中与进程、内存管理相关的数据结构。因此,我们有必要掌握一些Linux内核的基础知识,下面就介绍四本典经的Linux内核书籍。
1.Linux Kernel Development.
这本书的作者是Robert Love,目前最新的版本是第3版。这本书对Linux内核的设计和实现提供了一个总览视图,从概念上对Linux内核的各个子系统的设计目标和实现思路进行了清晰的描述,非常适合初学者阅读。如果从软件工程的角度来看,这本书就相当于是Linux内核的概要设计文档。
2.Understanding the Linux Kernel.
这本书的作者是Daniel P. Bovet和Marco Cesati,目前最新的版本是第3版。这本书对Linux内核的实现提供了更多的细节,详细地描述了内核开发中用到的重要数据结构、算法以及编程技巧,非常适合中高级读者阅读。如果从软件工程的角度来看,这本书就相当于是Linux内核的详细设计文档。
3.Linux Device Drivers.
这本书的作者是Jonathan Corbet, Alessandro Rubini和Greg Kroah-Hartman,目前最新的版本是第3版。这本书更加注重实际操作,它详细地讲解了Linux内核驱动程序的实现原理和实现方法,读者可以跟着它来实际地编写出自己的Linux驱动程序。阅读了这本书之后,对我们后续去分析Android的专用驱动程序是有非常大的帮助的。
4.Linux内核源代码情景分析
这本书的作者是毛德操和胡希明,是中国人自己编写的一本经典的Linux内核书籍。这本书最大的特点是从使用情景出发,对Linux内核的源代码作了详细的分析,帮助读者把枯燥无味的源代码给理顺了。
掌握了Linux内核的基础知识之后,还不宜马上就去分析Android系统的源代码,因为这样做是漫无目的的,我们应该带着问题或者目标去分析Android系统的源代码。要把问题或者目标挖掘出来,最好的方法就莫过于是在Android平台上编写自己的应用程序了。通过编写应用程序,我们可以知道Android平台都提供了哪些功能,进而我们就会想去了解这些功能是怎么实现的,这样就可以达到带着问题或者目标去分析Android系统的源代码了。这里介绍两个Android应用程序开发教程的书籍:
1.Professional Android 2 Application Development.
2.Google Android SDK开发范例大全.
这两本书都使用了大量的例子来说明如何使用Android SDK来开发Android应用程序。读者可以根据实际情况来练习一下,主要掌握Android应用程序四大组件(Activity、Service、Broadcast Receiver和Content Provider)的用法,因为Android系统的整个架构和实现就是为了向开发者提供这四大组件来实现各种各样的应用程序的。在学习的过程中,如果遇到其它问题,还可以参考官方文档
Ⅵ 如何评价《1616深入理解Android内核设计思想 第2版》
android疯狂讲义+android从入门到精通:入门到进阶中级差不多了接下来:Android系统源代码情景分析深入理解Android内核设计思想等等的一些。多关注一些开源项目,多看多实践,多google,一步步踏踏实实的进步就OK了。其实我最想推荐的是官方文档和源码!希望能帮到您。
Ⅶ 怎样评价罗升阳的android系统源代码分析
我干了3年Android sdk开发,觉得到了瓶劲没法更进一步,于是花了一年多点时间,大概摸到点门径。根据前辈的经验,Android底层完全入门需要两年。 先说下我的入门过程: 第零步,下载源码,我下的4.2的,框架层源码10G,内核2G多,ctags给框架层建的标签文件都有600M,当时让我有点震撼,用的vim+ctags+cscope来阅读,还算不错,架构挺清晰的。 第一步,我找到了一本好书《Android的设计与实现 第一卷》它讲了Android框架层的启动,初始化,服务框架初始化,Binder,消息循环,PackageManagerService,ActivityManagerService。据作者说后面会出讲UI子系统的第二卷,拭目以待。其实这本书看了几十页我就发现需要第二步的知识,否则看不下去,于是跳去第二步。 第二步,学习Linux系统编程,在看《Android的设计与实现》的时候我发现,框架层的Native部分,全是Linux编程。为了掌握这部分知识,我花了4个月学习了《Linux系统编程手册》(TLPI)这本1000多页的书,我以前是搞WIndows文件系统这块的,所以C语言还比较熟,TLPI的习题很有意思,量也比较大,坚持下来还是收获很多。 第三步,花了4个月学习了一些Linux内核的知识,看了LKD,PLKA看了一半多。越学越没底,觉得不懂得越来越多,不过这个也正常,只有靠慢慢磨,估计以后要不断的磨这块。 第四步,回头看Android源码,这次一口气看完了《Android的设计与实现 第一卷》,终于对框架层有了谱。同时真的数次把我看晕,前面看Linux内核源码都没这么晕,不断在Java层和Native层之间跳有点磨脑浆。其中我又觉得Java的基础没有打太牢,回去补了一个月的《Core Java》第八版。但是这书没有涉及UI子系统,于是又看了《Android内核剖析》 第五步,《Android内核剖析》(这本书实际上是讲框架层的,作者也是个搞嵌入式的,所以他在写框架层的时候文笔不太好,很罗嗦,不过还是有很多看点,到他后来写做ROM,玩开发板时估计是说到了他的本行,一下子遛起来了看得出还是挺有水平的,这本书知识有点旧毕竟讲的是2.3很多代码已经过时,但是作者很多点子很有参考价值)这本书讲UI子系统和按键/触摸消息处理系统还是很有分量的,尤其13章View绘制那里,结合源码研究很有收获。而后面他讲编译框架和ROM相关的东西都是挺宝贵的资料。 第六步,为了再补一下其他诸如电源管理模块等子系统的知识看了,《深入理解android》系列,个人认为这个系列看起来有点不太舒服,不过作为补充印证还是比较有价值。 第七步,《Android系统源代码情景分析》,罗升阳的源码分析大作,比《Android的设计与实现》分析得更细致,但缺点是涉及到模块比较少,选用的源码也比《Android的设计与实现》更旧一点。看完书后需要去研究作者的博客,东西挺多的,一定让你满意。 第八步,买块开发板自己玩。这步我还没走到,原因是我觉得我还差点准备知识。可能要再几个月,到时准备入块6410或者树莓派。 最后,由于我11年以前都是搞Windows这块的,所以对Linux知识不是很了解,不得已看了这么些书,如果是一直做Linux的人,很多步骤估计可以省掉了。直接上源码才是正道。 我本身做着移动GIS开发的工作,学框架层全是因为兴趣,但招聘平台Android框架层开发人员还是蛮有竞争力的有不少定制ROM,智能电视的工作都处于人才难求状态,毕竟有一定的门槛,现在各种ios培训,让奔着钱干开发的人纷纷涌入,而ios只能干sdk开发的缺点就暴露出来了,一堆新手老手,菜鸟大牛全挤在SDK开发这块,我觉得不太妙。 反观Android这边,虽然入门菜鸟没有搞ios来钱,但是可持续性很好,从sdk-》框架》驱动》内核这样干下去。干着干着发现自己渐渐变成了Linux开发者/嵌入式开发者的人也不少,新人,老手,菜鸟大牛各居其位,层次性很好。 转载
Ⅷ 此老罗 彼老罗 老罗到底是哪个老罗
此老罗 彼老罗 老罗到底是哪个老罗
锤子的老罗,写博客的写书老罗,视频教程的老罗。视频教程的老罗是罗升阳
罗升阳,Android系统源代码情景分析的作者,结合使用情景,全面、深入、细致地分析Android系统的源代码,涉及到Linux内核层、硬件抽象层、运行时库层、应用程序框架层以及应用程序层。在组织上,本书将上述内容划分为初识Android系统、Android专用驱动系统和Android应用程序框架三大篇章。初识Android系统篇介绍了参考书籍、基础知识以及实验环境搭建;Android专用驱动系统篇介绍了Logger日志驱动程序、Binder进程间通信驱动程序以及Ashmem匿名共享内存驱动程序;Android应用程序框架篇从组件、进程、消息以及安装四个维度来对Android应用程序的框架进行了深入的剖析。
Ⅸ 求大神推荐分析Android4.4 系统源码的资料(最好是书),急求,非常感谢!
可以参考这个网站上的资料http://www.2cto.com/kf/201401/271219.html
Ⅹ 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
前言
虽然Android系统自2008年9月发布第一个版本1.0以来,2011年10月发布最新版本4.0,一共存在十多个版本,但是据官方统计,截至2012年3月5日,占据首位的是Android 2.3,市场占有率达到66.5%;其次是Android 2.2,市场占有率为25.3%;第三位是Android 2.1,市场占有率为6.6%;而最新发布的Android 3.2和Android 4.0的市场占有率只有3.3%和2%。因此,在本书中,我们选择了Android 2.3的源代码来分析Android系统的实现,一是因为它的基础架构是最稳定的;二是因为它是使用最广泛的。
本书内容
全书分为初识Android系统篇、Android专用驱动系统篇和Android应用程序框架篇三个部分。
初识Android系统篇包含三个章节的内容,主要介绍Android系统的基础知识。第1章介绍与Android系统有关的参考书籍,以及Android源代码工程环境的搭建方法;第2章介绍Android系统的硬件抽象层;第3章介绍Android系统的智能指针。读者可能会觉得奇怪,为什么一开始就介绍Android系统的硬件抽象层呢?因为涉及硬件,它似乎是一个深奥的知识点。其实不然,Android系统的硬件抽象层无论是从实现上,还是从使用上,它的层次都是非常清晰的,而且从下到上涵盖了整个Android系统,包括Android系统在用户空间和内核空间的实现。内核空间主要涉及硬件驱动程序的编写方法,而用户空间涉及运行时库层、应用程序框架层及应用程序层。因此,尽早学习Android系统的硬件抽象层,有助于我们从整体上去认识Android系统,以便后面可以更好地分析它的源代码。在分析Android系统源代码的过程中,经常会碰到智能指针,第3章我们就重点分析Android系统智能指针的实
现原理,也是为了后面可以更好地分析Android系统源代码。
Android专用驱动系统篇包含三个章节的内容。我们知道,Android系统是基于Linux内核来开发的,但是由于移动设备的CPU和内存配置都要比PC低,因此,Android系统并不是完全在Linux内核上开发的,而是在Linux内核里面添加了一些专用的驱动模块来使它更适合于移动设备。这些专用的驱动模块同时也形成了Android系统的坚实基础,尤其是Logger日志驱动程序、Binder进程间通信驱动程序,以及Ashmem匿名共享内存驱动程序,它们在Android系统中被广泛地使用。在此篇中,我们分别在第4章、第5章和第6章分析Logger日志系统、Binder进程间通信系统和Ashmem共享内存系统的实现原理,为后面深入分析Android应用程序的框架打下良好的基础。
Android应用程序框架篇包含十个章节的内容。我们知道,在移动平台中,Android系统、iOS系统和Windows Phone系统正在形成三足鼎立之势,谁的应用程序更丰富、质量更高、用户体验更好,谁就能取得最终的胜利。因此,每个平台都在尽最大努力吸引第三方开发者来为其开发应用程序。这就要求平台必须提供良好的应用程序架构,以便第三方开发者可以将更多的精力集中在应用程序的业务逻辑上,从而开发出数量更多、质量更高和用户体验更好的应用程序。在此篇中,我们将从组件、进程、消息和安装四个维度来分析Android应用程序的实现框架。第7章到第10章分析Android应用程序四大组件Activity、Service、Broadcast Receiver和Content Provider的实现原理;第11章和第12章分析Android应用程序进程的启动过程;第13章到第15章分析Android应用程序的消息处理机制;第16章分析Android应用程序的安装和显示过程。学习了这些知识之后,我们就可以掌握Android系统的精髓了。
本书特点
本书从初学者的角度出发,结合具体的使用情景,在纵向和横向上对Android系统的源代码进行了全面、深入、细致的分析。在纵向上,采用从下到上的方式,分析的源代码涉及了Android系统的内核层(Linux Kernel)、硬件抽象层(HAL)、运行时库层(Runtime)、应用程序框架层(Application Framework)以及应用程序层(Application),这有利于读者从整体上掌握Android系统的架构。在横向上,从Android应用程序的组件、进程、消息以及安装四个角度出发,全面地剖析了Android系统的应用程序框架层,这有利于读者深入地理解Android应用程序的架构以及运行原理。