如何自學Android程式設計?

AndroidDeveloper發表於2016-01-22

  感謝 @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 投稿

相關文章