前言
关于如何高效率开发一个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开发的干货,并且会不定期更新哦。