汇总一下网上一些热门的框架
缓存
DiskLruCacheJava实现基于LRU的磁盘缓存
2.图片加载
Android Universal Image Loader一个强大的加载,缓存,展示图片的库
Picasso一个强大的图片下载与缓存的库
Fresco一个用于管理图像和他们使用的内存的库
Glide一个图片加载和缓存的库
3. 图片处理
Picasso-transformations一个为Picasso提供多种图片变换的库
Glide-transformations一个为Glide提供多种图片变换的库
Android-gpuimage基于OpenGL的Android过滤器
4. 网络请求
Android Async HTTPAndroid异步HTTP库
AndroidAsync异步Socket,HTTP(客户端+服务器),WebSocket,和socket.io库。基于NIO而不是线程。
OkHttp一个Http与Http/2的客户端
Retrofit类型安全的Http客户端
VolleyGoogle推出的Android异步网络请求框架和图片加载框架
5. 网络解析
Gson一个Java序列化/反序列化库,可以将JSON和java对象互相转换
JacksonJackson可以轻松地将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象
FastjsonJava上一个快速的JSON解析器/生成器
HtmlPaser一种用来解析单个独立html或嵌套html的方式
Jsoup一个以最好的DOM,CSS和jQuery解析html的库
6. 数据库
OrmLiteJDBC和Android的轻量级ORM java包
Sugar用超级简单的方法处理Android数据库
GreenDAO一种轻快地将对象映射到SQLite数据库的ORM解决方案
ActiveAndroid以活动记录方式为Android SQLite提供持久化
SQLBriteSQLiteOpenHelper 和ContentResolver的轻量级包装
Realm移动数据库:一个SQLite和ORM的替换品
7. 依赖注入
ButterKnife将Android视图和回调方法绑定到字段和方法上
Dagger2一个Android和java快速依赖注射器。
AndroidAnotations快速安卓开发。易于维护
RoboGuiceAndroid平台的Google Guice
8. 图表
WilliamChart创建图表的Android库
HelloCharts兼容到API8的Android图表库
MPAndroidChart一个强大的Android图表视图/图形库
9. 后台处理
Tape一个轻快的,事务性的,基于文件的FIFO的库
Android Priority Job Queue一个专门为Android轻松调度任务的工作队列
10. 事件总线
EventBus安卓优化的事件总线,简化了活动、片段、线程、服务等的通信
Otto一个基于Guava的增强的事件总线
11. 响应式编程
RxJavaJVM上的响应式扩展
RxJavaJoins为RxJava提供Joins操作
RxAndroidAndroid上的响应式扩展,在RxJava基础上添加了Android线程调度
RxBinding提供用RxJava绑定Android UI的API
AgeraAndroid上的响应式编程
12. Log框架
Logger简单,漂亮,强大的Android日志工具
Hugo在调试版本上注解的触发方法进行日志记录
Timber一个小的,可扩展的日志工具
13. 测试框架
MockitoJava编写的Mocking单元测试框架
RobotiumAndroid UI 测试
RobolectricAndroid单元测试框架
Android自带很多测试工具:JUnit,Monkeyrunner,UiAutomator,Espresso等
14.调试框架
Stetho调试Android应用的桥梁,使得可以利用Chrome开发者工具进行调试
性能优化
LeakCanary内存泄漏检测工具
ACRAAndroid应用程序崩溃报告
xUtils框架
主要有四大模块:
数据库模块:android中的orm框架,一行代码就可以进行增删改查;
支持事务,默认关闭;
可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名);
支持绑定外键,保存实体时外键关联实体自动保存或更新;
自动加载外键关联实体,支持延时加载;
支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。
注解模块:android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;
新的事件绑定方式,使用混淆工具混淆后仍可正常工作;
目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。
网络模块:支持同步,异步方式的请求;
支持大文件上传,上传大文件不会oom;
支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求;
下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件;
返回文本内容的请求(默认只启用了GET请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间。
图片缓存模块:加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;
支持加载网络图片和本地图片;
内存管理使用lru算法,更好的管理bitmap内存;
可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...