如何自學 Android 編程?

一、基礎篇

1.1 Android基礎篇

有了一定的Java基?。ú恍枰↗ava),就可以開始入門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基?。荷喜鉬ramework以及App層都是采用Java語法;

  • C/C++基?。篈ndroid的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 是一種什么樣的體驗?

分享到: 更多
广东11选五免费计划软件 抢庄牛牛详细技巧 至尊是哪两张牌 快络牛牛上下分 幸运飞艇倍投 5分彩计划软件 御彩轩计划软件有没有 11选五你有稳赚的投注技巧吗 大乐透100%的出号规律 快3彩票计划软件下载 5分赛车计划软件 大乐透预测开门彩 防止连挂倍投法 摔了没游戏规则 飞艇单双人工计划 三中三复式组数图