根据知乎网友回答、整理而得。
UI层
图片加载:之前用的Picasso,非常方便。但因为picasso是自带的请求处理,没办法和已有的http请求统一调度,同时在滑动列表中的使用不是很舒服。
图片加载,UIL Android-Universal-Image-Loader 或者Picasso;
图片加载:fresco
依赖注入:Butterknife,小而全的依赖注入库。之前使用过一段时间的 AndroidAnnotation ,功能非常完善,但一些特性上让人难以接受。
依赖注入 dagger, roboguice
简化代码 android annotations
数据层
Http/REST 请求:如果是严谨的RESTAPI , Retrofit 会非常好用!各种 annotation 用起来省事又省心!唯独不好的地方是很多时候我们的接口不是完全的 REST结构,同时需要针对每个request做单独的处理,这时候 Retrofit就显得有些尴尬了。这时候我会用 volley,volley的请求自定义和管理支持很好。
异步网络请求处理:是否曾经被网络请求的各种异常情况弄得焦头烂额?直到用到了RoboSpice,事情变得简单许多。对网络请求的再次封装,将请求的各种结果回调变得简便,同时对Retrofit , Okhttp,Ormlite 等支持都非常完善了,有了它,生活更 easy了。
网络请求 Volley
网络层,apcahe的http-common或者square的okhttp;
JSON解析:最通用的是Gson ,用起来也很方便,但从效率上来讲Gson不是最快的,FastJson和Jackson各有优势。
数据解析:Gson,我知道它速度不快,但是太好用了
数据库:ormLite和greenDao都挺好的。
消息事件队列:以前用 Guava ,后来发现有针对 Android平台设计的 Otto性能更优(虽然没有实际感受出来效率上的差别,既然是 Square 大法,一定要支持!)
事件总线:eventbus
事件处理 Otto
组件通信otto
聊天,XMPP;
动画,NineOldAndroids。
简单缓存:ASimpleCache
二维码:ZXing
新的百分比支持:https://github.com/JulienGenoud/android-percent-support-lib-sample
profile工具:leakcanary
xUtils 基于Afinal的开发框架,国人写的,还是很不错的
目前xUtils主要有四大模块:DbUtils模块、ViewUtils模块、HttpUtils模块、BitmapUtils模块;
对代码有洁癖,不想使用一个功能就引入一个大坨jar包。
或者想专注学习某一个模块或方向,那么推荐你使用Lite的类库。
以下是lite站点已列出的一些特点
1. 专一,每个库只做一件事情,并且只有核心相关的代码,这使得框架库体积非常小。
2. 简单,不需要三方依赖或辅助,API使用简单。
3. 性能不错,作者每个环节经过测试对比,来选出更好的模式和做法。
4. 依赖抽象,开发者可以自由的替换实现,来拓展功能。
5. 约定优于配置,这个无需多说了,省掉多余描述,更好地做事情。
![](https://i-blog.csdnimg.cn/blog_migrate/8372ea7df14a6c8e974ef1303457be15.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8372ea7df14a6c8e974ef1303457be15.png)
get start: LiteHttp:一款‘智能’的HTTP框架类库
但推荐稳定、可商用、简约单纯的框架,理由很简单:便于学习。
1. 初学者受困于经验,获取通用问题的最佳解决方式较难,借助已有的良好框架会做的更好。
2. 尽量使用专注、精简的框架,这样便于垂直学习,干扰很少,也便于拆分、砍掉。
3. 只有不断的阅读、学习良好的代码,才能提升自己代码质量。