如何自学Android编程?

  感谢 @googdev 投稿

  你们期待的终于来了,我可以算作是Android自学界的鼻祖了,之前自学的故事与分享的知识、经验影响了无数人,如今几年过去了,我经常收到不少人的感谢信,很多当初看我的教程的初学者如今已经在Android开发小有成就,而且让我欣慰的是他们也依然延续我的分享精神,影响更多的人。

  如果你现在依然是一个Android初学者,不妨到这里看下我的自学故事:

  如何自学Android编程

  https://www.zhihu.com/question/26417244

  今天废话就不多说,就来给大家推荐一份详细的自学教程,帮助你从入门到进阶到精通。

  准备

  自学之路是一项很苦逼的差事,自学的人很多,但能真正坚持下去的很少,在准备自学Android之前你需要具备以下基本能力能帮助你坚持到最后。

  1、对Android开发、对互联网感兴趣,兴趣是最好的老师,只有发自内心的感兴趣才能真正坚持下去;

  2、强大的学习能力,既然自学那学习能力肯定是必备,要有很强的求知欲,持续不断的学习能力才有机会走的更远,注意,是持续不断的学习能力;

  3、解决问题的能力,自学过程中肯定会遇到各种各样的坑,这个时候不要急躁,不要气馁,不要怕耗时间,一步一个脚印去解决问题,这会为你今后走上工作岗位带来极大的优势;

  4、设定一个目标,比如我当初测试转行开发,自学Android的目标简单直接,因为开发比测试工资高,我转行就是为了多挣钱。我想大部分人的目标应该都跟我同感。

  Java基础

  Android开发是基于Java语言的,所以毫无疑问的是必须要掌握Java基础,如果你完全没有任何Java基础,这步是必须要好好学习的,如果已经有Java基础的,这步可略过。

  对于很多初学者来说入门往往是最难的,如果只看书完全看不下去,也很难理解,所以强烈推荐初学者以书籍结合视频的方式学习Java基础,所以给你推荐:

  • 《Java语言程序设计》,优点是非常基础,适合初学者,建议只要看到前十四章就ok了,第十二章也可以略过。

  http://book.douban.com/subject/6529833/

  • Mars老师的Java4Android视频课程结合学习,便于初学者很好的理解与入门。

  http://pan.baidu.com/s/1c1beYo4

  如果每天至少坚持学习3-4小时的话,这一阶段差不多花费1--2个月之间都算正常,范围因人以及花费的时间而异。

  Android入门资料

  经过上面的学习相信你已经掌握了Java基础了,是时候开始正式进入Android学习的阶段了。

  • Android学习之路 

  我自己整理的Android开发详细资料,这篇博客影响了无数Android开发者,可谓Android开发必备,某种意义上来说,自学Android有这篇博客足够了。

  http://t.cn/Rz79nfR

  • 《第一行代码》

  郭霖大神的最新力作,全书由浅入深、系统全面地讲解了Android软件开发的方方面面,而且是针对Android 4.0进行讲解的,非常适合Android入门。

  http://book.douban.com/subject/25942191/

  • Mars老师的Android开发视频教程

  http://marschen.com/portal.php

  • 极客学院Android开发视频教程

  http://www.jikexueyuan.com/path/android/

  • 慕课网的Android视频教程

  http://www.imooc.com/course/list?c=android

  至于入门书籍我认为推荐一本适合你的就够了,而且大部分书籍内容大同小异,但是视频教程就就不一定讲解的内容都一样了,大家可自行选择视频教程。

  Android开发工具

  • 科学上网

  科学上网可以说是程序员必备技能,身为Android开发者那更得会这项技能,不管你是使用Google也好,还是到Android官网查找资料,下载SDK都必须要翻墙。可以使用goagent也好,修改host,购买vps、vpn等等方式,这个技能不是本文重点,大家可自行搜索去配置。可以告诉大家的是对于新手来说最简单有效的方式是购买VPN,可以节省不少精力,至于哪个vpn比较好用不敢保证,我使用了两年的vpn个人感觉相对较稳定,感兴趣的可以到我博客主页去寻找。

  • Android Studio

  虽然目前的很多学习资料与书籍都是Eclipse为主,但是Google已经明确未来Android会抛弃Eclipse,所以强烈建议大家直接使用AS,学习的初期花点时间熟悉使用,上手很快就可以对照eclipse方面的教程转到AS了。当让我也在AS1.0刚发布的时候就已经出了一个针对新手的Android Studio+Gradle详细教程,是一个系列,帮助你们更快的入门。

  http://t.cn/RbH8Q3V

  • AndroidDevTools

  我是强烈建议Android开发者一定要学会科学上网的,但是如果你觉得暂时还不需要接触外面的世界,那么我的一个朋友搭建的网站,可以让你们无须翻墙即可下载使用官方SDK。

  http://www.androiddevtools.cn/

  • 模拟器Genymotion

  首先建议大家能不用模拟器都不要用,模拟器的启动速度简直是龟速,现在市面上安卓手机很便宜,打算做Android开发没个安卓手机真是说不过去。如果你非要用模拟器那就推荐你用Genymotion,目前来说最快的模拟器。具体可以看我下面的博客,最后还是要建议大家不要使用模拟器!!

  http://t.cn/R4RvAQd

  • Google

  问任何问题之前都要先去搜索引擎查一下,这会训练你的解决问题的能力,而等你以后工作,实际开发中可以知道,有一大半的时间你是在搜索度过的,很多问题都已经是前人遇到并总结的方案。对于新手来说可能百度勉强够用,但是建议一开始就养成使用Google的习惯,百度在娱乐八卦方面确实靠谱,但是技术方面查出来的东西基本千篇一律,有些答案甚至还会起到误导作用,直到有一天我的老大告诉我用Google,我才知道这个世界上原来还有另外一个搜索引擎,自此便成为脑残G粉,所以一定要用Google!一定要用Google!一定要用Google!!!(重要的事说三遍)

  • StackOverFlow

  用Google之后搜索出来的东西还是习惯性的点击中文结果,直到有一天我发现基本每次搜索排名第一的都是这个网站,于是尝试着点进去用我蹩脚的英语阅读,之后真是相见恨晚的感觉啊,上面几乎能搜到你遇到的绝大部分问题,某种程度上来说推荐用Google搜索的原因之一是因为排名靠前的答案基本都在StackOverFlow上。

  • GitHub

  现在是全球最知名的程序员开源社区,程序员几乎人手一个GitHub账号,在上面你可以找到各种各样牛人分享的开源项目,包括Google、Facebook、Twitter等开源的代码,简直是号称进阶必备,某种意义上看大牛的代码是最好的学习进阶方式。

  Android开发资源

  了解这些资源你绝对会接触另一个世界,这些资源大部分都是我圈中好友总结分享的项目,绝对干货!

  • Google Android官方教程中文版

  http://t.cn/RvHtswy

  • Android 开发最佳实践

  一些优秀Android开发者总结留下来的经验,了解这些能让你的学习之路事半功倍。

  http://t.cn/RwgJoHm

  • Android开源汇总

  GitHub上总结的最全的Android各大开源项目,让你大开眼界!

  http://t.cn/R2LTQkN

  • Android Weekly

  了解最新的Android相关的技术有哪些,时刻了解紧跟技术趋势,建议加入邮箱订阅。

  http://androidweekly.net/

  • Android Weekly Cn

  我一个朋友做的国内版的Android Weekly,更符合国情。

  http://www.androidweekly.cn/

  • Android源码解析

  我的朋友Trinea发起的一个专注于开源项目源码解析及优秀开源项目的分享的网站

  http://p.codekk.com/

  • AndroidDeveloper

  我自己的公众号,算是打个广告吧,作为国内Android界的精神领袖,我经常也会在我的微信公众号上分享一些干货,大多为个人原创,时刻紧跟趋势,并且只分享对你们有用的干货,可以微信公众号搜索googdev关注。

  国内优秀Android开发者的博客

  这里筛选一些有质量的博客给大家,大都是你们的前辈,绝对一线的博客。

  • stormzhang的博客

  http://stormzhang.com/

  • 郭霖的博客

  http://blog.csdn.net/guolin_blog

  • Trinea的博客

  http://www.trinea.cn/

  • 魏祝林的博客

  http://blog.csdn.net/android_tutor

  • 恺风(Wei)之Android专栏

  http://blog.csdn.net/column/details/flowingflying02.html

  • 张鸿洋的博客

  http://blog.csdn.net/lmj623565791

  • 张兴业的博客

  http://blog.csdn.net/xyz_lmn

  • 更多国内优秀开发者的博客

  http://t.cn/RPniqXI

  • 国外著名优秀开发者博客

  http://t.cn/RPni7a0

  国内外优秀Andorid团体博客

  • Android Developers Blog (Android开发者官方博客,须翻墙)

  http://android-developers.blogspot.tw/

  • 美团点评技术团队

  http://tech.meituan.com/

  • 腾讯全端 AlloyTeam 团队 Blog

  http://www.alloyteam.com/

  Android进阶书籍

  当你Android开发已经上手之后,突然发现一直进步很慢,处于一个瓶颈了,这个时候你需要这些书籍。

  • Thinking In Java

  Java经典书籍,有中文版的,可能为了学习Android,你只掌握了Java基础,但是远远不够,你需要再重新系统的学习一下Java,这是一本值得反复看的书籍,针对有一定Java基础的人,会让你重新认识下Java。

  http://book.douban.com/subject/1474824/

  • Effective Java

  这是一本实用至上的书,78条建议,满满的干货。每一条都说明了为什么最好这样,Java进阶必备,目前为止看过这本书评价最好的一本。

  http://book.douban.com/subject/3360807/

  • App研发录

  从App架构的角度,重点总结了Android应用开发中常见的实用技巧和疑难问题解决方法,为打造高质量App提供有价值的实践指导,避免你在实际项目中踩坑,读完绝对有收获。

  http://book.douban.com/subject/26649050/

  • Android开发艺术探索

  这是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点,Android开发进阶值得拥有。

  http://book.douban.com/subject/26599538/

  AndroidUI设计

  • Material Design

  在开发一款Android App之前,你需要了解下Android平台的设计规范,这里有Google最新推出的Material Design中文翻译版。

  http://t.cn/RLrJg33

  而且 Google 官方出了一个支持库 Android Design Support Library,具体用法见链接。

  http://t.cn/R2orZH9

  • Sketch 3

  这个工具只推荐给对UI感兴趣的开发者,这是一个专为设计移动端 UI 的设计工具,作为开发者,不用懂那么复杂的 PS 使用,也可以做非常专业设计。

  https://designcode.io/sketch

  AndroidApp源码推荐

  当你已经做Android开发一段时间,并苦于进入瓶颈,这个时候阅读一些优秀App的源码是最好的学习进阶方式,借鉴一些优秀App源码的设计能获益很大。

  • iosched

  iosched项目是Google I/O的官方app,绝佳的学习项目。

  https://github.com/google/iosched

  • android-UniversalMusicPlayer

  也是Google官方作品,代码量不大、注释清晰,简单但全功能的音乐播放器。

  https://github.com/googlesamples/android-UniversalMusicPlayer

  • android-topeka

  这个项目是Google前段时间刚发出来,通过这个app,你还可以学到如何设计你app的交互和视觉以更好的和MaterialDesign搭配。

  https://github.com/googlesamples/android-topeka

  Google的项目有些时候对于初学者有点困难,下面就推荐两个完整的轻量的学习项目。

  • 9GAG

  9GAG是我个人的开源练习项目,教你使用Studio、Gradle以及一些流行的开源库快速开发一个不错的Android客户端。

  https://github.com/stormzhang/9GAG

  • AnimeTaste

  代码家开源的一个线上关注动画的一个App,同样适合初学者学习。

  https://github.com/daimajia/AnimeTaste

  Android新技术

  你需要了解Android有以下新兴的技术与框架,有些也许还不成熟,但是你应该去了解下,也许就是未来的方向。

  • Kotlin

  作为 Android 领域的 Swift,绝对让你如沐新风。抛弃沉重的 Java 语法,Kotlin 融入了很多现代编程语言的思想,作为开发者,接受新的语言,了解新语言的发展趋势,更有利于开阔你的思路和加深对语言的理解。

  http://t.cn/R2DK0SL

  • React Native

  Facebook推出的针对移动应用的跨平台解决方案,目前还不成熟,但是由于Facebook推出,光环效应引起不少目光,这是不是未来暂且还没结论,但是有必要了解学习下。

  http://t.cn/RbHmtOk

  • MVP

  MVP越来越多的被Android社区所讨论,有点是能够让代码更清晰,但同时也会增加很多类,写起来更麻烦,不过对于一些不是很庞大的项目却是非常适合的。这里提供一个最先采用MVP模式的开源项目:

  https://github.com/pedrovgs/EffectiveAndroidUI

  • MVVM

  因为官方支持 DataBinding,把 MVVM 直接带到 Android 中。它非常高效的开发效率,让你只关心你的数据和业务,从此数据绑定会更加常见。

  http://t.cn/RbHmnhE

  • 插件化

  一般App上线之后出现bug需要重新提交新版本才能解决,这个就太慢了,由于iOS的审核原因,插件化在iOS开发常见,阿里业务方面这个特别需要,比如双十一出了bug,不能眼睁睁的看着bug出现不管吧,所以阿里系衍生出了一系列热修复的框架,dexposed、AndFix,具体可以见这里详解。

  http://lirenlong.github.io/hotfix/

  • RxJava

  最近响应式编程框架RxJava越来越受大家待见,RxJava让你异步任务更简洁方便,以我对技术的敏感性认为RxJava可能会越来越普遍,推荐大家学习。这里有一系列详细的资料教你学习。

  https://github.com/lzyzsd/Awesome-RxJava

  当你下定决心,准备前行的时候,剩下的只有坚持了!

  感谢 @googdev 投稿

转载请注明本文出处: http://www.oudahe.com/p/365/