零基础学安卓开发的3个步骤、N本好书
来自于微信公众:工程师小道 非原创
Step 1:Java 入门
从语言上说,Android应用开发基于的是Java语言,其实NDK开发中也涉及到了C语言。不过少年,你还是先学会走再开始跑吧。
首先,看书永远是最好的方法,Java语言基础学习推荐两本书:
《Head first Java 》

《Java编程思想》

第一本入门讲解的十分生动,看着漫画就把门入了。第二本是经典中的经典,Java程序员必读书籍。
其次,现在的在线学习资源也十分丰富,觉得看书太麻烦的话看个视频也可以。
Java 编程导论,香港大学,edX

Java 程序设计,北京大学,Coursera

Step 2:Android 开发基础知识
有了一些Java基础以后就可以开始学习Android基础开发了,
其实学习Android最好的资料是在http://developer.android.com/(需要科学上网,原因就不说了)
这里再推荐几本book:
《深入理解Android 1》

《深入理解Android 2》

这里也推荐几个在线学习资源:
极客学院(国内的平台,课程很全)
http://www.jikexueyuan.com/
英语好的话,推荐Udacity 上的安卓开发微学位,虽然需要付费,不过在12个月内完成课程的话可以减免,很值!
同样,这方面的MOOC课程也很多啦,可以自己去Coursera啊edX啊搜索一下。学会利用搜索引擎,永远是开始学习的第一步。
安卓手持系统的移动应用编程(第1部分),马里兰大学帕克分校,Coursera

Google 也在Udacity 开设了一些安卓开发课程:

开发应用不需要闭门造车,有很多成熟的三方库和三方控件可以使用。下面介绍一个大型程序员(同性)交友网站。GitHub · Where software is built。在这里你可以找到各种各样的三方库和控件,不仅仅是Android。
在这里建议少年你学习下Git。一个版本管理工具但不只是版本管理这么简单~~~
《GitHub入门与实践》

《Git版本控制管理(第2版)》

如何使用Git和GitHub(How to Use Git and GitHub),Udacity
(PS:是一个美女教师上课哦)

Step 3:发布应用
应用开发完成就要发布了,发布应用就要涉及到应用市场,Google官方在Udacity 开设了一个系列课程,非常详细地讲解了自家Google Play的各种机制,对于初步了解安卓市场来说足够啦:
安卓市场服务:数据分析(Google Play Services: Analytics)
安卓市场服务:地图(Google Play Services: Maps)
安卓市场服务:身份认证(Google Play Services: Identity)
安卓市场服务:移动电话广告市场(Google Play Services: AdMob)
安卓市场服务:位置与环境:通过定位服务加强你的app功能(Google Play Services: Location & Context: Enhance Your App with Location Services)
更多的关于市场的事就需要自己摸索了~
PS,上面说的是非游戏类app,如果想做手机游戏的话需要学 Cocos2d 或者Unity3D 。
也推荐几个资源吧:
Cocos2d-JS 第一步,极客学院
Unity3D 窗口界面介绍,极客学院
好了,学到这里你可以开发应用了!问题回答完毕!
但是学习Android开发不仅仅是开发一个应用这么简单。你要是还有技能点的话就往下看,不过下面的坑是相当的深,慎入。
想进一步学习Android么?推荐一个网站。https://source.android.com/(如果打不开就说明需要科学上网)把源码下载下来,阅读源码是进步的捷径。你也可以学习下如可编译源码,开发属于自己的ROM(这个就太复杂了涉及的东西太多了,但是弄个简单的还是可以的,这里不讲怎么刷机了)
研究源码时候会涉及到NDK的部分这就要求你有C的开发经验了。但是少年你现在你只学了JAVA,但是不用怕一颗充满野望的心怎么能被这点事儿难倒。其实编程语言思想基本是互通的就是表达方式不一样。
推荐一些进阶学习资源:
C语言:
C语言程序设计,中国大学MOOC

C++语言程序设计,学堂在线

Linux:
鸟哥的Linux私房菜(简体)(http://vbird.dic.ksu.edu.tw/)
《Linux程序设计》
《深入Linux内核架构》
NDK开发相关:
http://developer.android.com/tools/sdk/ndk/index.html (想办法科学上网,少年)
少年,学完上面的内容你基本上就是超神了。但是新的技术不断的涌现,不要放松对自己的要求。你还要冲钻石呢。
想想你离全栈工程师还有IOS,Python,PHP,JS,H5,JavaWeb..........想想也是醉了。
本文来自知乎,由作者授权转载,二次转载请联系原作者。