04/09
2014

Android公共库选型 单元测试 依赖管理等调研

抱歉,最近一个多月一直比较忙,博客许久未更新。后续更新周期会慢一些,不过依旧会陆续分享一些原创。

 

最近在调研一些事情,欢迎大家留言告诉我自己公司的一些情况、经验及想法
1. Android单元测试

a. 单元测试覆盖率情况
b. 测试辅助框架选型,Quality Tools for Android, android-test-kit, robolectric, Android FEST指标同下
c. Jenkins持续集成使用情况

 

2. Android依赖管理
目前主要是Maven和Gradle或是混合的选择,Maven是网站演化而来,Gradle是google推出,选用哪个及原因,碰到的坑。

 

3. Android 公共库选型
android-open-project也分享过很多不错的开源项目,同类功能也大多有两个以上不错的开源项目,在具体选择上准备做一些对比测试,包括优劣、使用场景、性能及稳定性对比,欢迎大家交流经验,有测试数据及报告最好。如
a. 依赖注入
AndroidAnnotations butterknife Dagger对比
b. ORM
greenDAO ActiveAndroid Sprinkles ormlite-android 国内的Afinal及xUtils对比
c. 网络类
Retrofit RoboSpice AndroidAnnotations等RESTFUL API支持对比
像EventBus与Otto的对比就非常专业https://github.com/greenrobot/EventBus#comparison-with-squares-otto

 

4. Android渠道包自动打包
a. 哪些渠道打包方式
b. 各自优劣
c. 各自原理

 

5. Android开发效率提高
a. 有益于效率提高的工具
b. 随着项目增大,debug时间越来越长,具体原因在哪儿?如何优化?

 

目前以上问题大都有一些解决方案,不过也都在寻求更好的解决方案。欢迎大家一起讨论。

 

允许的话后续也会分享BAT及与国内一些App公司的交流结果。

随手点点下面广告,支持我维护本站吧
  1. 1、个人倾向于用gradle、使用方便、Google力推、用没多久,暂时还未碰到什么坑、之前一直用ant2、一直在用jenkins自动打渠道包发布测试、每天定时打包上传给到测试、集成起来非常好用3、渠道打包,我们用过两种方式,一种是:ant替换,每次编译一个包,脚本打包。第二种是:打好一个包,反编译后,替换渠道,后者相对速度快一些。4、开发效率的话,首先IDE选择Android Studio吧,依赖尽量用jar、用library编译会拖慢不少

  2. 楼主的干货好多好多好多好多。。。。能不能分享下你的学习经历。我目前工作差不多8个多月了。。。感觉迷茫起来了。。。公司android的人都走了,就我一个了。。项目经手好多人。。。。最后一次是我和我上司一起重构(用的是一个半成品日本人开发的一个框架)了一把,核心的他重构的,其它是我重构的,但是他上上个星期突然离职了,很多工作都没有交接清楚,而我现在面临的就是一个烂摊子,一个充满BUG的项目,最近催我上线,我就上线了,然后BUG,BUG,两天上了三次线,虽然目前线上的稳定了,但是里面肯定还有很多BUG,搞的我想在重构一次了,毕竟这个项目核心的还是不是我写的,重构核心也是上司弄的。我只负责用。但是下星期又面临着新需求和新功能的档期,公司约束很多,只有内网,开发起来非常不方便。。。。我想,等招到人了,而且这次的需求完善了,那么我想跳槽了。。。。。唉。。。迷茫。。。俺身份证和实际年龄差4岁,身份证97年。。。。。又不敢离职。。。。。但是公司约束太多太多。。。上厕所都要刷卡。。。。。。。迷茫。。。。

  3. 关于缓存这一块,公司的服务器没有缓存,所以只能在android端做,第一次进入先把获取的json转化为对象用greendao保存下来,下次进入直接读取这个,然后读取一次从服务器拉,在保存到greendao中,掩耳盗铃的做法,LZ有木有好点的缓存方法。

  4. 公司需求太多,加班都忙不过来,单元测试一直都没有也没时间写。Maven之前没用过,对Gradle研究了下,用Gradle依赖管理觉得很方便,而且兼容Maven,支持多渠道打包,ORM倾向ActiveAndroid,网络库之前用的Android-Async-Http,不过现在更倾向于Volley,依赖注入更偏向于轻量级的View注入框架butterknife,随着项目的增大以及历史遗留问题,很多都没有采用,实战有待加强,以上只是个人观点。

    • 赞。单元测试同样做的少,但这块绝对可做。我亲身经历过web单元测试+Jenkins的效果,绝对的赞。我也倾向于Gradle,不过公司后台开发一直用Maven,所以换Gradle,我得有详细的对比和分析报告。公共库的选择上现在也大都先入为主,没有一个完整的对比。