前言
? ? ? 關于如何高效率開發一個Android的App,需要做哪些準備呢?之前在知乎跟segmentfault回到過類似的問題,在這里補充和總結一下。廣東這幾天天氣這么冷,絲毫阻擋不了我第一次在簡書寫文章的熱情啊。
1)功能模塊
網絡模塊
1. okhttp : https://github.com/square/okhttp
2. android-async-http:https://github.com/loopj/android-async-http
3. volley:https://developer.android.com/intl/ja/training/volley/index.html
事件總線
1. otto:https://github.com/square/otto
2. EventBus:https://github.com/greenrobot/EventBus
依賴注入
1. Dagger: https://github.com/square/dagger
2. RoboGuice:https://github.com/roboguice/roboguice
3. ButterKnife: https://github.com/JakeWharton/butterknife
圖片模塊
1. Fresco:https://github.com/facebook/fresco
2. Glide:https://github.com/bumptech/glide
3. picasso:https://github.com/square/picasso
數據庫模塊
1. greenDao:https://github.com/greenrobot/greenDAO
2. ormlite:https://github.com/j256/ormlite-android
3. LitePal:https://github.com/LitePalFramework/LitePal
響應式編程
1. RxJava:https://github.com/ReactiveX/RxJava
2. RxAndroid:https://github.com/ReactiveX/RxAndroid
日志輸出
1. logger:https://github.com/orhanobut/logger
2. android-CLog:https://github.com/liaohuqiu/android-CLog
3. KLog:https://github.com/ZhaoKaiQiang/KLog
JSON解析
1. fastjson : https://github.com/alibaba/fastjson
2. gson: https://github.com/google/gson
3. jackson:https://github.com/FasterXML/jackson
2)測試相關
1. testerhome:https://testerhome.com/
支付寶Monkey老師推薦的測試社區,里面有很多干貨
2. bugtags:https://bugtags.com/
新一代的、專為移動測試而生的缺陷發現及管理工具
3. testin:http://www.testin.cn/
為移動測試而生
3. Emmagee:https://github.com/NetEase/Emmagee
網易出品的,是監控指定被測應用在使用過程中占用機器的CPU、內存、流量資源的性能測試小工具。
3. GT:https://github.com/TencentOpen/GT
騰訊出品的,對APP進行快速的性能測試(CPU、內存、流量、電量、幀率/流暢度等等)、開發日志的查看、Crash日志查看、網絡數據包的抓取、APP內部參數的調試、真機代碼耗時統計等
4. awesome-android-testing :https://github.com/hotchemi/awesome-android-testing
A curated list of awesome android testing libraries.
3)崩潰統計
開發過程中,對APP崩潰統計是必須的啦,Crittercism和Crashlytics有時候需要梯子,你懂的。
1. 騰訊bugly:http://bugly.qq.com/
2. Crittercism:https://app.crittercism.com/
3. Crashlytics:http://try.crashlytics.com/
4)架構設計
這個肯定得了解下MVC,MVP,MVVM還有設計模式這些,這里有幾個開源項目推薦下
philm
Movie collection and information app for Android.
Github地址:https://github.com/chrisbanes/philm
SimpleNews
基于Material Design和MVP的新聞客戶端
Github地址:https://github.com/liuling07/SimpleNews
GankDaily
A application show technical information every working days, use MVP pattern.
Github地址:https://github.com/maoruibin/GankDaily
SimplifyReader
Github地址:https://github.com/SkillCollege/SimplifyReader
NBAPlus
Github地址:https://github.com/SilenceDut/NBAPlus
PhotoNoter
Github地址:https://github.com/yydcdut/PhotoNoter
Meizhi
Github地址:https://github.com/drakeet/Meizhi
5)其他
leakcanary
檢查內存泄露
Github地址:https://github.com/square/leakcanary
DebugDrawer
Android Debug Drawer for faster development
Github地址:https://github.com/palaima/DebugDrawer
ViewServer
Local server for Android's HierarchyViewer
Github地址:https://github.com/romainguy/ViewServer
blockcanary
檢測UI卡頓, 阿里工程師出品
Github地址:https://github.com/moduth/blockcanary
6)APP內測,分發
APP開發完成了,想通過鏈接方式發給別人使用測試,下面兩個平臺可以幫到你
1. FIR.im:http://fir.im/
2. 蒲公英:http://www.pgyer.com/
后話
? ? ? ?雖然這些開源庫好用,能讓你快速的開發出一款APP。但使用前最好要了它們存在的一些bug和坑,遇到問題可以給作者提issue,能摸索清楚原理更好了。還有就是不要過于追求開源庫,過多引入會導致你的代碼臃腫,更會造成65535方法數限制的問題。
?另外打個小廣告,推薦下自己的:Android-Dev-Favorites:https://github.com/ruijun/Android-Dev-Favorites,里面收集了Android開發的干貨,并且會不定期更新哦。