Xutils:
主要包括四个部分:View,Db, Http, Bitmap 四个模块。
~ View模块主要的功能是通过注解绑定UI,资源,事件。
~ Db模块是一个数据库orm框架, 简单的语句就能进行数据的操作。
~ Http模块主要访问网络,支持同步,异步方式的请求,支持文件的下载。
~ Bitmap模块是加载图片以及图片的处理, 支持加载本地,网络图片。而且支持图片的内存和本地缓存。
1.Volley的Http请求在 android 2.3 版本之前是通过HttpClient ,在之后的版本是通过URLHttpConnection。xUtils都是通过HttpClient请求网络(bitmap模块图片下载是通过URLHttpConnection)。 URLHttpConnection默认支持GZIP压缩,api操作简单。
2.Volley将Http请求数据先缓存进byte[], 然后是分配给不同的请求转化为需要的格式。xUtils是直接转化为想要的格式。 Volley:扩展性好, 但是不能存在大数据请求,否则就OOM。xUtils:不缓存入byte[] 支持大数据的请求, 速度比Volley稍快,但扩展性就低。
4.Volley访问网络数据时直接开启固定个数线程访问网络, 在run方法中执行死循环, 阻塞等待请求队列。 xUtils是开启线程池来管理线程。
5.缓存失效策略, volley的所有网络数据支持从http响应头中控制是否缓存和读取缓存失效时间,每个请求可以控制是否缓存和缓存失效时间。 Xutils网络数据请求是统一自定义缓存失效时间
Volley:
可以看下别的总结 借鉴一些资料
https://www.jianshu.com/p/cc8c37923877
Volley的优缺点
优点
自动的调度网络请求
多并发的网络请求
可以缓存http请求
支持请求的优先级
支持取消请求的API,可以取消单个请求,可以设置取消请求的范围域。
代码标准化,使开发者更容易专注于我们的业务的逻辑处理
更容易给UI填充来自网络请求的数据
Volley可以是作为调试和跟踪的工具(
缺点
使用的是httpclient、HttpURLConnection
大数据请求容易oom
非常不适合大的文件流操作,例如上传和下载。因为Volley会把所有的服务器端返回的数据在解析期间缓存进内存。
只支持http请求
图片加载性能一般
1.请求流程
2.重要的类的总结
Volley: 提供了构建 RequestQueue 的统一方法,我们也可以不通过这个而是自己构建 RequestQueue
RequestQueue: 负责分发请求到不同的请求队列中
CacheDispatcher: 处理缓存请求
NetworkDispatcher: 处理网络请求
ResponseDelivery: 获取请求后进行处理
Cache: 缓存接口,具体实现类有DiskBaseCache
Network: 网络接口,具体实现类有BasicNetwork
HttpStack: 真正执行请求,具体实现类有HurlStack HttpClientStack
Request: 封装请求信息并处理回复,具体实现类有StringRequest JsonRequest
Response: 封装返回的信息,具体实现类有NetworkResponse
okhttp:
主要包含: