Xutils Volley okhttp 区别总结

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.请求流程


Xutils Volley okhttp 区别总结_第1张图片
以上就是volley请求的主要流程了

2.重要的类的总结

Volley: 提供了构建 RequestQueue 的统一方法,我们也可以不通过这个而是自己构建 RequestQueue

RequestQueue: 负责分发请求到不同的请求队列中

CacheDispatcher: 处理缓存请求

NetworkDispatcher: 处理网络请求

ResponseDelivery: 获取请求后进行处理

Cache: 缓存接口,具体实现类有DiskBaseCache

Network: 网络接口,具体实现类有BasicNetwork

HttpStack: 真正执行请求,具体实现类有HurlStack HttpClientStack

Request: 封装请求信息并处理回复,具体实现类有StringRequest JsonRequest

Response: 封装返回的信息,具体实现类有NetworkResponse


okhttp:

看下别人的总结

主要包含:

一般的get请求 

一般的post请求

基于Http的文件上传

文件下载

加载图片支持请求回调,直接返回对象、对象集合支持session的保持


HTTP是现代应用网络的方式。这就是我们交换数据和媒体的方式。有效地执行HTTP可以加快您的负载并节省带宽。OkHttp是一个默认有效的HTTP客户端:HTTP / 2支持允许对同一主机的所有请求共享套接字。连接池减少了请求延迟(如果HTTP / 2不可用)。透明GZIP缩小了下载大小。响应缓存完全避免网络重复请求。当网络很麻烦时,OkHttp坚持不懈:它将从常见的连接问题中无声地恢复。如果您的服务有多个IP地址,如果第一次连接失败,OkHttp将尝试备用地址。这对于IPv4 + IPv6和冗余数据中心中托管的服务是必需的。OkHttp启动具有现代TLS功能(SNI,ALPN)的新连接,并在握手失败时回退到TLS 1.0。使用OkHttp很简单。它的请求/响应API采用流畅的构建器和不变性设计。它支持同步阻塞调用和带回调的异步调用。OkHttp支持Android 2.3及更高版本。对于Java,最低要求是1.7。



后续继续补充!!!!!!!!!!!!!!!    

你可能感兴趣的:(Xutils Volley okhttp 区别总结)