Android 开源框架(整理)
值得进攻源码的几款 android 开源框架!!!
1、volley?项目地址 https://github.com/smanikandan14/Volley-demo
(1)? JSON,图像等的异步下载;
(2)? 网络请求的排序(scheduling)
(3)? 网络请求的优先级处理
(4)? 缓存
(5)? 多级别取消请求
(6)? 和 Activity 和生命周期的联动(Activity 结束时同时取消所有网络请求)
2、android-async-http??项目地址:https://github.com/loopj/android-async-http
文档介绍:http://loopj.com/android-async-http/?
(1) 在匿名回调中处理请求结果
(2) 在 UI 线程外进行 http 请求
(3) 文件断点上传
(4) 智能重试
(5) 默认 gzip 压缩
(6) 支持解析成 Json 格式
(7) 可将 Cookies 持久化到 SharedPreferences
**3、Afinal 框架
**项目地址:https://github.com/yangfuhai/afinal
主要有四大模块:
(1) 数据库模块:android 中的 orm 框架,使用了线程池对 sqlite 进行操作。
(2) 注解模块:android 中的 ioc 框架,完全注解方式就可以进行 UI 绑定和事件绑定。无需 findViewById 和 setClickListener 等。
(3) 网络模块:通过 httpclient 进行封装 http 数据请求,支持 ajax 方式加载,支持下载、上传文件功能。
(4) 图片缓存模块:通过 FinalBitmap,imageview 加载 bitmap 的时候无需考虑 bitmap 加载过程中出现的 oom 和 android 容器快速滑动时候出现的图片错位等现象。
FinalBitmap 可以配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等。FinalBitmap 的内存管理使用 lru 算法,
没有使用弱引用(android2.3 以后 google 已经不建议使用弱引用,android2.3 后强行回收软引用和弱引用,详情查看 android 官方文档),
更好的管理 bitmap 内存。FinalBitmap 可以自定义下载器,用来扩展其他协议显示网络图片,比如 ftp 等。同时可以自定义 bitmap 显示器,
在 imageview 显示图片的时候播放动画等(默认是渐变动画显示)。
**4、xUtils 框架
**项目地址:https://gith
ub.com/wyouflf/xUtils
主要有四大模块:
(1) 数据库模块:android 中的 orm 框架,一行代码就可以进行增删改查;
支持事务,默认关闭;
可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL 约束,CHECK 约束等(需要混淆的时候请注解表名和列名);
支持绑定外键,保存实体时外键关联实体自动保存或更新;
自动加载外键关联实体,支持延时加载;
支持链式表达查询,更直观的查询语义,参考下面的介绍或 sample 中的例子。??????????
(2) 注解模块:android 中的 ioc 框架,完全注解方式就可以进行 UI,资源和事件绑定;
新的事件绑定方式,使用混淆工具混淆后仍可正常工作;
目前支持常用的 20 种事件绑定,参见 ViewCommonEventListener 类和包 com.lidroid.xutils.view.annotation.event。
(3) 网络模块:支持同步,异步方式的请求;
支持大文件上传,上传大文件不会 oom;
支持 GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT 请求;
下载支持 301/302 重定向,支持设置是否根据 Content-Disposition 重命名下载的文件;
返回文本内容的请求(默认只启用了 GET 请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间。????????????
(4) 图片缓存模块:加载 bitmap 的时候无需考虑 bitmap 加载过程中出现的 oom 和 android 容器快速滑动时候出现的图片错位等现象;
支持加载网络图片和本地图片;
内存管理使用 lru 算法,更好的管理 bitmap 内存;
可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...
**5、ThinkAndroid
评论