如何自学 Android 编程?

一、基础篇

1.1 Android基础篇

有了一定的Java基础(不需要精通Java),就可以开始入门Android。建议初学Android者,一定要先搭建自己的开发环境,先准备jdk和Android Studio环境。再看书的过程,一边看知识点一边写示例程序,一来加深印象,二来提高动手能力。想要系统学习Android的人可以选择一些安卓培训的机构。


  • 《疯狂Android讲义》:作者李刚,这是我看过的第一个Android书籍,目前有第三版了,我当时看的是第二版基于Android 4.2,书中有大量的实例,记得当时每看完一个实例就跟着敲了一遍,大概花了一周时间把这本书看完并把大部分的实例代码都亲手敲了一遍。

  • 《第一行代码》:作者郭霖,网上有不少人都推荐这本书作为Android入门书,但我当时没有看过。这是图灵系列图书,前段时间图灵的编辑看到我的博客gityuan.com,于是联系到我问是否有兴趣出书,便提到郭霖的《第一行代码》也是他们出版社推出的,然后就给我邮寄了一本。我大概扫了一扫这本书,内容的确比较基础,作者文笔不错,书中还穿插了不少打怪涨经验升级的片段,比较风趣,初学者可以看看。

  • Android的基本书籍,只需一两本即可,没有必要看太多基础书籍,不同能力就该有不同的追求,这里就不再介绍其他基础书籍。 另外,Android开发过程中总是需要各种开发环境、工具的下载,再这里推荐一个不错的网站 AndroidDevTools.cn,收集整理了 Android开发、设计等相关的各种工具大集合,非常全面,而且速度也不错哦,最重要的不用翻墙就可下载到最新的工具。


1.2 Android资源整理

到这里,那么你已经具备开发App的本领。平时需要自己动手多写写App,另外就是看看别人优秀的App是如何写的,下面列举一些开源库、工具以及App:

当然还有很多优秀的博客和网站值得推荐… //TODO


二、进阶篇

2.1 阅读源码的重要性


借用Linux之父Linus Torvalds的一句名言:Read the fucking source code。不管是阅读Andoid系统源码还是优秀的开源框架,对能力那都会有一个巨大的提升;首先,能学习到优秀的代码风格和设计思想;能真正做到“知其然,还需知其所以然”;能指导自己更加灵活的使用API,能更加快速地找到系统bug的根源。


2.2 阅读源码的准备


  • Java基础:上层framework以及App层都是采用Java语法;

  • C/C++基础:Android的jni/native层代码采用C++,Linux 采用C;

  • Linux:Android内核基于Linux的,了解Linux相关知识对深入掌握Android还是很有必要。

  • Git:Android源码采用git和repo进行管理;

  • Make:Android源码采用Make系统编译,源码系统中会看到很多Android.mk之类的文件;

  • Source Insight:这绝对是看源码的神器;可以在Java、C++、C代码之间无缝衔接;

  • Eclipse:熟悉常用快捷键,工欲善其事必先利其器;虽然Source Insight很方便,但由于对Eclipse的熟悉感,对于framework Java层面的代码,我还是更习惯用Eclipse来看,对于Native代码以及linux代码则采用Source Insight来看;

  • Android Studio:这是Google官方支持的App开发环境,关于Android Studiod使用教程;

  • Google Drawings:这是画图工具,Gityuan博客中的文章都是采用Google Drawing完成,比如Binder开篇文中的图。

  • StarUML:这是类图,Gityuan博客文章的类图和流程图都是采用StarUML完成,比如理解Android进程创建流程文中时序图。


三.进阶书籍


  • 深入理解Linux内核

  • 深入Linux内核架构

  • Linux内核设计与实现

  • Linux设备驱动程序

  • 重构 改善既有代码的设计

  • 编程珠玑 (卷1, 卷2)

  • 设计模式

  • 设计模式之禅

  • 人月神话


前4本书都是关于Linux,如果你不是需要从事Linux相关开发,只想提升对Android整体的理解,那么只需看一到两本,对Linux的进程、内存、IO以及驱动有所了解,对CPU调度、进程间通信有所熟悉就基本可以。另外,优秀的书还有很多,这里只介绍/列举我看过的书,目前还在看一些优秀的书,后续再更新。

来源:伯乐在线专栏作者 - gityuan 

上一篇: 学Android需要java基础吗

下一篇: 在 2016 年学 Android 是一种什么样的体验?

分享到: 更多