有沒有適合 Android 開發初學者的 App 源碼推薦?
用於鍛煉基礎知識。比如一個記事本?或者一個簡單的聊天軟體?
——我是提問者,android做了1年了今天才看到當時提的問題,仍然獲益匪淺(所以說還是停留在初學者階段嗎。。),沒想到關注人數這麼多了。一起努力吧,歡迎加我好友一起交流。
GitHub上google和googlesample這兩個帳號下有若干Android app,大部分都是遵循google推薦的最佳實踐,並且符合Material Design,很值得學習。手機碼字,晚上回去給好連接
---------
首先介紹 iosched這個項目,google/iosched · GitHub 。
iosched項目是Google I/O的官方app,不僅僅是一個學習的demo,這是一個真正開源的線上項目。這個項目裡面使用了大量Google官方推薦的最佳實踐,比如使用loader載入數據,大量使用本地sqlite緩存數據,通過syncAdapter來更新本地緩存的數據,配合GMS達到節約流量省電的目的。另外這個app也是學些MaterialDesign的不錯的範例。另外這個app還很好的適配了手機和pad,如果你想要做這方面的適配工作,不妨也參考一下
至於項目的committer,你可以找到比如romannurik這種Google Android項目開發者,證實這並不是Google的實習生寫的項目,而是Android平台的核心工程師所做,質量自然很有保證。
第二個推薦的就是topeka項目 googlesamples/android-topeka · GitHub 。這個項目是Google前幾天剛發出來,用來展示如何將MaterialDesign應用到你的app中,以達到最佳設計和交互效果。通過這個app,你還可以學到如何設計你app的交互和視覺以更好的和MaterialDesign搭配。上兩張demo圖也來推薦個 Google 自家的,Universal Music Player googlesamples/android-UniversalMusicPlayer · GitHub
- 代碼量不大、注釋清晰,簡單但全功能的音樂播放器;
- 實現基於 Google Cast 的音樂流播功能(類似 AirPlay);
- Material Design;
- 提供了一個 App 適配多種Android 設備(真的夠多=w=)的最佳實踐:Android 手機,平板,Android Auto,Android Wear 和 Android TV
Android Phone:
涉及了鎖屏、全屏的交互,Service的基礎使用Android Wear:我開源過EverMemo和AnimeTaste的源代碼 有興趣可以去看看
daimajia/EverMemo · GitHubdaimajia/AnimeTaste · GitHub
P.S. 最近「最美創意」豌豆莢設計獎 也是用了部分AnimeTaste的代碼,歡迎大家拿著代碼去折騰新東西。OSChina 客戶端源碼: 含(Android,iOS,WP)全平台版本
項目地址: 手機客戶端 - 開源中國社區
推薦理由:(不負責)1. 一個正經的產品的源碼。比任何玩具代碼,都值得學習。
2. 該APP含3大平台(Android,iOS,WP)源碼,適合任何一門語言背景的人學習。3. 項目支持3大平台。顯然可以學習到跨平台的項目架構設計,代碼結構組織。4. 各大平台應用商店,都可以下載到該 APP。裝上,體驗下功能,再抉擇。4. 該APP功能足夠多,覆蓋常用APP設計需要的功能。很值得學習。
為何是不負責推薦?是因為我沒有細看過源碼。
但是我一直收藏該項目,如果啥時候我要學習寫 APP,第一個研究的就是該項目。我覺得學習,最重要的是沉下心,認真吃透一個 APP 源碼。
貪多嚼不爛。尤其是各種玩具代碼,少看。正經可以商業用,做成產品的APP,都是有架構的。學精品。深入學。安利一個自己寫的小工具,源碼地址 GitHub - androidyue/Akoi-Translator: A translator translates text once you copy translatable content.
非常推薦小米提供的開源應用,我就是看他們的應用成長起來的,主要推薦三個MiCode:MiCode/FileExplorer · GitHub
MiCode/Notes · GitHub
MiCode/SoundRecorder · GitHub順便再推薦幾個我也覺得不錯的:zirco-browser,Android Gallery3D,Open Camera再推薦一個博客系列:《android項目實戰--手機衛士》我覺得與其看那些app的代碼 倒不如自己嘗試基於android源代碼的不同組件增加或減少功能來學習android內部的代碼 原因如下
1 源代碼密度高 維護和使用的人最多 所以看下來的價值最大
2 看app代碼可以看他的架構 看他的trick 但是真正的性能優化 還是要從源碼入手可能有些人說 直接看源代碼難度高 其實不然 現在一個優秀的開源代碼 基本都具備面對開源社區友好的優勢 讀起來並不一定比隨便抓一個其他人寫的代碼要難
可以嘗試循序漸進的方式 比如先嘗試給app定製桌面 改ui 然後再到通知系統 線程 資料庫等比較低層的 我覺得這個過程也會是一段非常有趣的代碼之旅~小米開源了老miui版本上的「小米便簽」的源碼。不過代碼寫的比較早
偶然看到這個問題。
可以看看我在整理的開源項目:
pcqpcq/open-source-android-apps · GitHub有針對App類型作了分類,方便學習和索引。可以去看Google I/O 每年的官方應用源代碼,編寫絕對標準,並且也可以對UI有更深層的掌握。
GitHub UISample
Tangyingqi/ReadProgress · GitHub我自己做的一個 記錄讀書進度的app我是一個Android初學者,有問題可以找我一起討論。
可以看谷歌Android源碼,在package/app下有好多應用。
看源社區 - 移動開發社區 是目前最全的android開源庫,推薦
資訊類源碼,有興趣可以下載http://pan.baidu.com/s/1o7R9TbG mf4u
安利一下,都是不錯的項目~GitHub - Trinea/android-open-project: Collect and classify android open source projects 微信公眾號:codekk[轉]一些完整的Android開源app項目
去極客學院、開源中國找啊,多了去了。我在極客學院跟著視頻學的實戰項目,挺靠譜的。
又到期末了呀
這裡收集了74款APP源碼,轉自代碼零件
原文鏈接:【代碼零件】 一起發現更好的項目零件
開源中國客戶端源碼
推薦閱讀:
※小米5殺後台很嚴重,有什麼辦法嗎?
※為什麼 Windows 不像 iOS、OS X 一樣隔年迭代?
※理論上,安卓系統能實現墓碑機制嗎?
※Android 應用開發的難點是什麼?
※三星 Note 7 的自燃事件會對三星造成怎樣的影響?