Android實戰技巧:Android學習資源總結 – Android移動開發技術文章_手機開發 Android移動開發教學課程

 

要想對一門技術有所瞭解,或是掌握一門技術,或是想成為高手或專傢,學習是必然的途徑。學習,我認為,有二個因素決定著學習的效率和成果:一個是學習方法和個人的領悟能力,另外一個就是要有一套較好的學習資源。學習Android開發也是一樣,本主將總結一下在Android學習中的一些比較好的比較有價值的學習資源。

 

1. Android SDK documents

這個是非常容易獲得的,你可以從官網來看,也可以從本地安裝的SDK裡面看,因為要想進行Android開發,是一定要有Android SDK的,而所有的SDK裡面都有文檔的。我建議看官網的,因為它總是最新的,以前官網被和諧瞭,看不瞭但是後來是完全可以看的,而且服務器響應也很快,很流暢。

 

為什麼要看官方文檔呢?首先,它是官方文檔,換句話說,它最權威,所以你可以放心的看,不用擔心這個東西是否是真的;其次,也是最重要的,文檔中的內容十分豐富,從如何下載安裝SDK,到HelloWorld的初級體驗,到基本的開發知識,再到整個SDK的API的索引,再到一些有用的文章的資源。可以這樣子講,如果你能把SDK文檔全部都仔細讀一遍,你就已經是一個成熟的Android開發者。

 

建議先看一遍Dev Guide欄內的東西,它會讓你瞭解Android的開發方式的所有項目都會用到的一些公共基礎知識。然後就可以去References欄中查找相應的API的詳細使用方法,這個沒有必要從第一個看到最後一個,而應該是像使用字典那樣的去使用它,也就是說,當你想用某個API時,或者不知道某個API怎麼用時再去查References。這裡要說明下,一定學會用搜索,在References欄的右上角有一個搜索框,可以幫你快速定位到某個類,當打開瞭某個類後,也要多用Ctrl+F搜索你的要方法或是常量,善用搜索,可以節省很多時間。然後,就要時不時去Resources欄裡面看一看,這裡面的文檔都值得仔細閱讀,可以幫助你成為高手,或是讓你的程序更加的健壯。

 

2. API Demo

如同它的名字所暗示的那樣,這個Sample的目的就是向你展示如何使用Android的API,雖然它不是很全面,也不是很深入,但對於很多常用的API,比如Activity,Dialog,View,Graphics等,還是提供瞭相當值得參考的代碼。最最重要的是,它不是文檔,教你如何使用,而是非常直接的代碼,很多時候,你都可以直接拷貝。

 

3. Other samples in SDK

比如,NotePad,Snake,Spinner,SpinnerTest等等,這些Sample,不像API Demo零散的展示API怎麼用,都非常專註的著重講某一方面。比如NotePad可以全面的學習如何使用ContentProvider;Snake可以全面的學習如何創建自定義的View;SpinnerTest則展示如何寫Android的單元測試(UnitTest)。

 

其實SDK裡面除瞭文檔以外,很多東西都被很多人所忽略,現在馬上打開SDK文件夾,看看 裡面到底有什麼,有多少東西是值得看一看,研究研究的。

 

4. Android Source Code

不用多說,這裡是學習和研究Android的最佳場所。所有,所有關於Android的東西,都在這裡面,而且你可以很容易的免費的獲得它,然後研究它,學習它,我想這也是開源軟件最大的優勢:你可以輕松的獲得源代碼進行學習和研究。

 

Android的源碼可學習的部分主要有三個文件夾,一個是externals,這是一個第三方開源包集合的地方,裡面有著Android用到的所有的開源的第三方庫比如webkit, opencore, openssl等等,想研究它們的人可以直接殺進去; 另一個則是frameworks,這裡是Android的Frameworks,主要是為上層App提供支持的地方,Android SDK的API都是出自這裡,當然它裡面的內容要比開放出來的API多得多;如果你想自定義個View,或是實現個高級的容器,可以進去參考,或是想直接研究那些API是怎麼實現的,也是直接殺進去;最後一個就是packages,這個packages含有Android本身自帶的App層的一些系統核心應用和系統級的Provider和輸入法。這些應用都是展示API如何使用的非常好的例子。雖然被廠商定制過後系統核心應用都被改瞭許多,Market上面的一些系統軟件也比原生的好用,但是這些自帶的原生的App還是相當值得研究和學習的,它們不但展示瞭如何正確的使用各種API,同時也展示瞭如何使用系統沒有開放出來的一些API,也就是com.android.internal.*下面的東西,還有這些核心應用程序,重點展示瞭如何使用一些系統的關鍵的包,比如android.telephony.*;android.provider.*;android.media.*;還有PackageInstaller和Launcher也是相當值得研究的。

 

如果你想研究Android的工作機制和底層是如何實現的,那麼externals下面的東西是必須看的,Android很多的Frameworks層的東西最終都是由externals下面第三方的庫來提供支持的。

 

如果你想寫一些自定義的組件,那麼就可以參考Frameworks中的官方提供的組件,或是重寫它,或是參考其中的實現式,比如你的應用需要一個特殊的GridView,但是官方的GridView又不能滿足需求時,這時就可以考慮通過繼承來重寫(Override)GridView,或是完全參考GridView的實現方式來自己實現。

 

如果你想做電話和信息相關的應用,那麼Phone和Mms還有TelephonyProvider是必須要參考的;如果想做多媒體方面的應用那麼Music和Gallery是必須要參考的。如果要做硬件相關的,那麼Camera和Bluetooth也是必須要參考的。

 

另外,Android系統本身很註重測試,它有很大一部分代碼都是專門用來測試的,主要有CTS測試,Monkey測試,另外就是每個應用裡面都有一個測試應用,這些也是學習如何寫Android的單元測試的很好的教材。

5. 網絡資源

現在網絡時代,無論學習什麼,研究什麼,網絡都是一個不可忽視的資源。主要的方式就是論壇和博客。

 

目前論壇,專註於Android的有優億eoeAndroid

摘自 浪人的星空

發佈留言