项目原因,让我们必须深入探索Android系统,完成对之前的我们来说比较艰巨的任务。这样,我们开启了Android深度游。
Android这个系统,应用层开发还是比较舒服的,Google把一切都安排好了,只要会Java就可以开发出绚烂多彩的应用。而它的内部还是比较庞大的,啃动它还是比较困难的,虽然它是open的,但面对海洋一般的代码,难免会迷失。
先看看Android系统的架构图
![](https://box.kancloud.cn/2016-06-12_575d20c6dc88f.jpg)
从下到上共分四层:Linux kernel、libraries、application framework、applications
Android是基于Linux内核的,这是第一层。这就意味着你要有Linux的经验。Lniux内核与Linux驱动的知识是少不了的。对于内核相关的书籍,个人正在看两本国人写的书《Linux内核完全注释》和《Linux内核源代码情景分析》。
前一本书的作者是赵炯,主要分析0.11版的kernel。从代码量较少的但比较成型的内核说起,容易理解也不会被庞大的代码量所吓到。内面对linux历史背景和一些原理都有讲解,这样比干巴巴的分析代码强多了,也易于理解和消化。
另一本书的作者阵容还是很强大的。作者毛德操与胡希明都是教授级的人物,毛先生现已定居美国,而此书是两人联袂把当时共事时的心得与体会都分享出来,其实也是对过往岁月的一种纪念,一种友谊万岁的情怀。本书针对kernel 2.4.0,超级详细的理清脉络,从情景出发分析探寻kernel世界。是本不可多得的国人经典。
驱动方面,其实是整个内核代码量最多的部分。但我最近都是在网上找一些资料,并没有深入读书研究,可以延后再办。
第二层是公共库和Android的运行时,Libraries都是很大的题目,有专门的书籍讨论,而我主要把精力放在Android运行时上。
Android运行时是由Dalvik虚拟机和核心库组成的。这方面可以阅读杨丰盛的《Android技术内幕:系统卷》,专门开辟一张来讲虚拟机。别看运行时只占架构图中的一小部分,但它的重要性很高,每个应用程序都是跑在这里的。
第三层是应用框架层,为第四层应用层暴漏API接口。
期间我阅读以下几本书,感觉都能够学到一些东西。都是国人所做。
1.《深入理解Android》(卷1)和(卷2) 邓凡平著。
我的启蒙书。在这里我仔细学习了VOLD等详细分析,至今印象深刻。前后两本,足够带你去Android的内部逛一圈,并且有所收获。把它们放在桌上,随时翻阅,随时收益。从Android框架的初始化开始,走过的所有组件,都有涉猎。但当某一个知识点需要更详细的分析时,感到书中给出的略有些不足。这可以理解,因为知识覆盖面太广,谁也不是各个领域的专家,有不足很正常。
2.《Android技术内幕:系统卷》 杨丰盛著。
此书是我最早入手的,大概是刚刚上市。当时我正在做Android应用开发,由于其太深入到系统内部了,涉及各种驱动,读起来吃力不讨好。放下了,最近捡起来一看,也会找到我想要的,真是庆幸自己当时的选择。
3.《Android内核剖析》 柯元旦
内核剖析,是用来吸引人的,并没有得到大家的共鸣。本书覆盖的知识点很广,但是有些蜻蜓点水,一带而过。最可怕的是,错别字很多,有些都影响到内容的表达了。我的评价不高,大家可以试读一下。
4.《深入剖析Android系统》 杨长刚
印象最深的是Android的启动过程,里面讲的很不错。我之前没有深入分析,读过之后感觉澄清了许多问题,也弥补了之前的无知。读起来也不错,但是时间原因不能精读,放在那里随时翻阅。
最后,贴一张很有营养的图,来自[makelinux](http://www.makelinux.net/android/internals/)。
![](https://box.kancloud.cn/2016-06-12_575d20c712b57.jpg)
- 前言
- 读《Linux内核设计与实现》我想到了这些书
- 梦想的启航,那些年,那些书
- C++和Windows平台的一些书籍
- java一路走来
- 《Android入门之旅》
- 致我们终将逝去的青春-PHP篇
- 多读书,读好书
- 这些年,那些我们一起读过的代码
- C++码农要读的经典
- 阅读IT类图书,能够收获什么
- 读完《大数据时代》的一点儿心得
- 这些日子我读过的《java编程思想》
- 关于C,看过的一些书
- Android系统深度游
- 《《内存和性能优化》》给我带来的!
- 「书评」SAP内存计算——HANA
- 书籍记录了我技术的成长历程
- 那一年读过的技术经典书
- 【时间规划】C/C++发展之路--读书
- UNIX 环境高级编程之我见
- 游戏开发图书推荐--我读过的技术经典图书
- 自己动手写操作系统-经典书籍
- 游戏升级之路
- 《SQL Server 2005开发技术大全》分享一本书
- 书,永远的朋友
- 学生时代的书单
- 追求技术之路 - 那些陪伴我的书籍
- 经典书籍--好书很多,重要的是有个目标,有个规划
- android系统深入开发
- 这些年一路相伴的书
- 从零开始学
- 这些年我读过的技术经典图书(附电子版下载地址)
- 书--益友--从不孤单
- 给自己时间沉淀下来
- 那些支持我学习与工作的良师益友
- 文章千古事、得失寸心知
- 从Linux 驱动到游戏可视化转行要读的书
- 那些年,我们一起读过的《JAVA与模式》
- 往事不堪回首 -- 多读书
- 我程序人生的启蒙书
- 一个不喜欢读书的Javaer的读书单
- 一本书,让我走上编程之路
- 程序员读书的五重天
- 大学那会儿,我读过的技术经典图书
- C语言高手进阶的三碟小菜和一盘大餐