本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
隨著Android平台持續驚人的增長,越來越多的開發人員開始工作於Android應用程序。而且現在的Android平台已經非常成熟了。
這篇文章比較適合於初學者和有一定經驗的Android開發者,文中羅列了最棒的資源。
書
也許你會認為從書中去學習新的開發框架會有點落伍,但這也確實是一條正確的道路。參見Jeff Atwood的《Programmers Don’t Read Books – But You Should》。
我推薦這兩本書:
- Mark Murphy的《The Busy Coder’s Guide to Android Development》。這本書的特別不僅是在於它的深度覆蓋(有2000+頁),還在於其頻繁的更新頻率(〜每2個月)。這是迄今為止關於Android SDK這個快速變化的主題在書籍中最佳的模式。Mark Murphy還定期開通一個辦公時間,允許用戶提問。圖書樣品托管在GitHub上。強烈推薦。
- Juhani Lehtimaki的《Smashing UI》。一本很精彩的書,適合任何關注UI設計的Android開發者。
DEVELOPER.ANDROID.COM
在你寫第一個Android應用程序之前,請用心研讀和學習Android Design這個網站。具體來說,是這些文章:
- 《Devices and Displays》
- 《Touch Feedback 》
- 《Metrics and Grids》
- 《Iconography》
另外,還可以下載包括模板,圖標和控件的源文件,樣式和無樣式的動作欄圖標等在內的部分。
想要開始寫代碼?sorry,請接著閱讀:
- Best Practices for User Experience & UI (必讀)
- Best Practices for Performance
- Displaying Bitmaps Efficiently
- Adding Animations (也可見於NineOldAndroids庫)
- Tools help
- SDK Samples
STACKOVERFLOW
許多Android核心框架工程師,開發人員以及專業的Android開發人員經常在stackoverflow.com上回答問題。這是stackoverflow上一系列頂尖的Android用戶表。我訂閱了很多RSS,例如:CommonsWare(Mark Murphy),Dianne Hackborn,Romain Guy,Reto Meier,Trevor Johns,Roman Nurik,Adam Powell (感謝 @remdroid!).。
博客
博客上面也有大量Android開發的最新信息:
- Gyuri Grell的Android Dev Weekly。每周提供最新的Android開發資訊。強烈推薦。
- Official Android developers blog。這個博客的文章非常值得浏覽如:《Avoiding memory leaks》,《Memory Analysis for Android Applications》。
- Romain Guy。這是一個很牛逼的Android框架工程師寫的博客,而且寫的相當棒。一旦你熟悉了Android開發之後,一定要閱讀《Android Performance Case Study》這篇文章。題外話:Romain也是一位偉大的攝影師。
- Chet Haase的Codependent,Android動畫框架的創造者。
- Mark Murphy的The CommonsBlog。
- Cyril Mottier的Android開發博客。博客文章寫得非常深入。一些最新的帖子是:《ListView Tips & Tricks #5: Enlarged Touchable Areas》,《Tweeted Android Development Tips》,《The Google Maps Android API V2 Utopia》,Android App Launching Made Gorgeous》,《 “Pull-to-refresh”: An Anti UI Pattern on Android》。
- Mark Allison的Styling Android。
- Daniel Lew的Coding Thoughts——來自於一個寫Expedia的Hotels and Flights app(從前:Mobiata)的開發人員的偉大秘訣。
GOOGLE +
雖然Google+還沒有成為社會網絡,但它是Android開發非常寶貴的資料來源。你可以參考的一些Google+資料有:Tor Norbye (ADT),Dianne Hackborn,Romain Guy,Chris Banes,Roman Nurik,Nick Butcher,Adam Powell,Rich Hyndman, Cyril Mottier,Paul Burke,Jeff Gilfelt.。
當然不能忘記Jake Wharton,ActionBarSherlock、ViewPageIndicator、 NineOldAndroid和很多其他開源Android庫的作者。
也可以考慮加入Google+社區:
- 官方的Android開發者社區
- Android設計師社區
開源項目
閱讀精心設計的應用程序的源代碼是一個好主意:
- Google I/O Android app。如果你想要復制/粘貼代碼,這裡就可以讓你復制。
- Chris Banes的Photup。
- Reto Meier的Android Protips: A Deep Dive Into Location。演示了如何使用位置檢測,碎片和BackupManager。不過我要提醒你,這代碼已經有一段時間沒有更新了。
當然,還有最終來源:Android source code。
開源庫
一些最有用的開源庫:
- Jake Wharton的ActionBarSherlock。在Android 4.0+上使用本地動作欄,和通過一個單一的API和主題在pre-4.0上的一個自定義實現,來實現這個用於動作欄的設計模式的庫。
- Jake Wharton的ViewPagerIndicator。兼容來自於Android Support Library和ActionBarSherlock的ViewPager的尋呼指示符部件。最初基於Patrik Åkerfeldt的ViewFlow。
- Jake Wharton的NineOldAndroids。 在所有平台版本上——可追溯到1.0——使用蜂窩動畫API的Android庫。
- Sergey Tarasevich的Universal-Image-Loader。強大而靈活的,用於異步圖像的加載、緩存和顯示的儀器。
- Koushik Dutta的UrlImageViewHelper。 UrlImageViewHelper通過發現URL的圖片,並自動下載,保存和緩存所有位圖,填補了ImageView的空白。
- Chris Banes的Android-BitmapCache。一個專門的高速緩存,與Android Bitmap objects一起使用。
- Jake Wharton的DiskLruCache。 一個基於磁盤的LRU緩存的Java實現,專門針對Android的兼容性。
在github上搜索[android]項目還有很多。此外,DevAppsDirect app是一個開源的自定義視圖,小部件和庫的集合。
GOOGLE I/O TALKS
雖然我們幾乎不可能獲得GOOGLE I/O的門票,但所有的GOOGLE I/O談話可在網上找到,通常用幻燈片的形式。GOOGLE I/O Android部分的會話:2012,2011,2010,2009。
我最喜歡的一些談話:
- Alex Faaborg和Christian Robertson的《Advanced Design for Engineers(2012)
- Chet Haase和Romain Guy的《For Butter or Worse: Smoothing Out Performance in Android UIs(2012)
- Adam Powell和Richard Fulcher的《Navigation in Android(2012)。如果你認為Android的back/up按鈕問題很簡單,那麼看看這個震撼人心的談話。
- Daniel Lehmann,Tor Norbye和Richard Ngo 的《So You’ve Read the Design Guide; Now What?》(2012)
- Chet Haase,Romain Guy和Daniel Sandler的《What’s New in Android?》(2012)
- Xavier Ducrohet和Tor Norbye的《What’s New in Android Developers’ Tools》(2012)
- Patrick Dubroy的《Memory management for Android Apps》(2011)
- Brad Fitzpatrick的《Writing zippy Android apps》(2010)
- Virgil Dobjanschi的《Developing Android REST client applications》(2010)
別再說了,嚇到我了
看到這裡是不是壓力有點大,但是千萬不要絕望。上面有些資源都只是針對初學者的,還有一些則更適合於高級開發人員。
如何有效地掌握資源的幾點建議:
- 首先,讀書。請一定要讀書。這是為了打好Android知識的正確基礎。
- 訂閱博客,通過RSS參與stackoverflow社區。
- 在Google+中成立一個Android開發圈子。
ANDROID巨星
由於Android的開發者生態系統持續蓬勃發展是基於許多非常優秀的開發者的貢獻,所以在這裡我特別要提到這兩個讓Android開發者更輕松生活的巨星。他們是:Mark Murphy和Jake Wharton.。
Mark和Jake為Android開源做了諸多貢獻。所以如果你有幸遇到他們,一定要向他們請教,你肯定會受益匪淺。
當然,其他還有很多Android框架開發人員和設計人員參與了Android的發展。
最後,結尾
現在你已經知道了關於如何寫Android應用程序的所有信息和工具!但是,你還需要一個偉大的Android UI設計師,不過這就不是本文討論的范圍了。如果你想要開始寫你的第一個Android應用程序,那麼對此一定要有所涉獵。
如果我有遺漏任何重要資源的地方,請在評論中告訴我,讓我們共同進步。
編碼快樂!