当前位置: 首页 > 科技观察

六大推荐Android开源框架介绍

时间:2023-03-14 19:42:50 科技观察

1、volley项目地址https://github.com/smanikandan14/Volley-demoJSON、图片的异步下载等;网络请求调度(scheduling)网络请求的优先级处理缓存多级取消请求以及Activity与生命周期的联动(Activity结束时同时取消所有网络请求)2.android-async-http项目地址:https://github.com/loopj/android-async-http,文档介绍:http://loopj.com/android-async-http/匿名回调处理请求结果在UI线程外对http请求文件断点上传SmartretryDefaultgzip压缩支持解析成Json格式Cookie可以持久化到SharedPreferences3,Afinal框架项目地址:https://github.com/yangfuhai/afinal有四大模块:数据库模块:Android中的orm框架,使用线程池在sqlite上操作。注解模块:Android中的ioc框架可用于UI绑定和事件绑定,全注解。不需要findViewById和setClickListener等。网络模块:通过httpclient封装http数据请求,支持Ajax加载,支持文件下载和上传功能。图片缓存模块:当通过FinalBitmap加载位图时,imageview无需考虑位图加载过程中出现的oom和Android容器快速滑动时出现的图片错位。FinalBitmap可以配置线程加载线程数、缓存大小、缓存路径、加载显示动画等。FinalBitmap的内存管理使用LRU算法,不使用弱引用(Google在Android2.3之后不推荐使用弱引用.Android2.3之后,软引用和弱引用被强制回收,具体请参考Android官方文档),更好的管理位图内存。FinalBitmap可以自定义下载器扩展其他协议显示网络图片,如ftp等。同时可以自定义位图显示,imageview显示图片时播放动画(默认为渐变动画显示)。4、xUtils框架项目地址:https://github.com/wyouflf/xUtils,主要有四个模块:数据库模块:Android中的orm框架,一行代码即可增删改查;支持事务,默认关闭;通过注解自定义表名、列名、外键、唯一性约束、NOTNULL约束、CHECK约束等(需要混淆时请对表名和列名进行注解);支持绑定外键,保存实体时外键关联实体自动保存或更新;自动加载外键相关实体,支持延迟加载;支持链式表达式查询,查询语义更直观,参考下面的介绍或示例中的例子。注解模块: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请求)支持缓存,可以设置默认过期时间和当前请求的过期时间。图片缓存模块:加载位图时,无需考虑Android容器在位图加载过程中快速滑动时出现的oom和图片错位;支持加载网络图片和本地图片;内存管理使用LRU算法更好的管理位图内存;线程加载线程数、缓存大小、缓存路径、加载显示动画等均可配置。5、ThinkAndroid项目地址:https://github.com/white-cat/ThinkAndroid主要有以下几个模块:MVC模块:实现view和model的分离。ioc模块:Android中的ioc模块可以全注解进行UI绑定,读取res中的资源,初始化对象。数据库模块:Android中的orm框架,使用线程池对sqlite进行操作。http模块:通过httpclient封装http数据请求,支持异步和同步加载。缓存模块:通过简单的配置和设计,可以很好的实现缓存,可以随意配置缓存。图片缓存模块:imageview加载图片时,无需考虑图片加载过程中出现的oom和Android容器快速滑动时出现的图片错位等问题。Configurator模块:可以实现简单的配对配置操作。目前,配置文件可以支持Preference和Properties访问配置。日志打印模块:可以方便快捷的实现日志打印,支持扩展日志打印,目前支持写本地打印到sdcard,控制台打印下载器模块:可以轻松实现多线程下载,后台下载,断线点击恢复控制下载,如开始、暂停、删除等。网络状态检测模块:当网络状态发生变化时,进行检测。6、LoonAndroid项目地址:https://github.com/gdpancheng/LoonAndroid主要有以下几个模块:自动注入框架(只需要继承框架中的APP)图片加载框架(多重缓存,自动回收,最大限制保证内存的安全性)网络请求模块(基本继承了目前所有的http请求)eventbus(集成了一个开源框架)验证框架(集成了开源框架)Json解析(支持解析成集合或者对象)数据库(不知道是不是是谁写的忘记了)多线程断点下载(自动判断是否支持多线程,判断是否重定向)自动更新模块一系列工具类其中Volley在2013年就研究过了,扩展性是很好,个人比较喜欢这种风格。其他的比如Android-async-http和Afinal也相当不错。