最近经常被问起如何更深入学习Android,学习Android需要什么资料,学习规划如何,在这里分享一些学习经验。包括规划和学习资料及书籍。希望对于学习Android的新手能有比较大的帮助。

  一、应用层:

  应用层的书没有特别好的,内容都大同小异。推荐下面的学习资料:

  1. Android developer网站http://developer.android.com

  Android developer网站提供了熟悉Android系统最权威的资料,这里包含了Android所有概念的详细解释。

  2. Android SDK示例程序

  AndroidSDK示例程序,位于sdk/samples目录下,提供了大量的案例程序(demo)。是熟悉应用程序和学习Android API的最佳入门材料。

  3. 《精通Android》

  这本书是一个印度人和一个美国人合著的,算是介绍应用层相对好点的材料,缺点是翻译一般,而且过于偏重于理论,实践的内容比较少

  4. 一本能迅速上手的书

  对于初学者,有一本迅速上手的书也是很有必要的。国内出版物通常侧重于实践,方便上手。这方面没有特别好的选择,通常人民邮电出版社图灵、机械工业出版社华章、电子工业出版社博文视点出版的原创书籍质量相对好些,可以根据自己的特点任选一本。最好选择2012年以后出版的图书,这样才可能包含比较新的概念,比如Fragment等。

  5. 分析Android源码内置应用程序

  Android内置应用程序是比较进阶的学习资料。Launcher、Contacts、Phone、Camera、Gallery不但提供了大量的编程技巧,还对理解系统功能十分有益。

  6. 分析Android开源项目

  可以从Android开源项目借鉴很多思想和方法。分析开源项目对第三方APP的开发十分有益。

  二、框架层

  框架层相对稳定,国内原创书籍质量也比较高。推荐下面的学习资料:

  1. 《Android系统源代码情景分析》和老罗的Android之旅博客

  作者:罗升阳。基于Android 2.3。老罗的特点是功底深厚,分析深入,对框架层核心模块的理解都很清晰透彻。需要读者有较高的起点,对C和C++部分的分析更为详细,对深入理解框架层非常有用。这本书对Binder驱动、智能指针、Ashmem、键盘消息处理机制、Service、Log系统的分析非常好。建议学习框架层必备。

  2. 《Android的设计与实现:卷1》

  作者:杨云君。基于Android4.1。这本书的特点是思路清晰,分析严谨细致,基本没留下什么盲点,对解决实际问题非常有用。对Java部分的分析更为详细。这本书对PackageManager、应用程序安装过程、ActivityManager、消息处理、进程管理、应用程序启动过程、系统启动过程的分析非常好。建议学习框架层必备。

  3. 《深入理解Android:卷1,2》

  作者:邓凡平。卷1基于Android2.2 ,卷2基于Android 4.0。这本书的特点是分析流畅,内容丰富,卷1侧重于框架层C和C++部分,卷2侧重于框架层Java部分,分析比较简略,对迅速了解框架层很有用。这本书对Binder框架、PowerManager、ContentProvider、常见类、Surface的分析非常好。建议学习框架层必备。

  三、内核驱动层

  1. 《Linux内核设计与实现》

  Linux开发四大名著之一,简称LKD。是迅速理解Linux整体框架的最佳选择。

  2. 《深入理解Linux内核》

  Linux开发四大名著之一,简称ULK。理解Linux内核的最佳选择。

  3.《Linux设备驱动程序》

  Linux开发四大名著之一,简称LDD。理解Linux驱动的最佳选择。

  4.《深入理解Linux内核架构》

  Linux开发四大名著之一,简称PLKA。理解Linux架构的最佳选择。

  5. 优秀的国产图书

  Linux内核源代码情景分析 (作者:毛德操,胡希明):国内分析Linux内核最深入的一本书,基于linux2.4,很多内容仍然值得借鉴。

  Linux设备驱动开发详解(作者:宋宝华):适合驱动入门的一本书,可以配合LDD一起看。

  嵌入式Linux应用开发完全手册 (作者:韦东山):适合入门的一本书,非常易懂

  ARM体系结构与编程(作者:杜春雷):适合了解ARM体系结构的一本书。