volley浅析

volley是google在2013年推出的一个多线程网络访问框架。想了解更多的能够google,下面切入正题,来讲说volley的整个框架思想和结构。
1、android网络服务场景
在android应用中,网络请求做为最经常使用的功能之一

一、请求协议类型多样化:http、https、socket;android

 

二、请求方式(针对部分协议)多样化:options、head、get、post、put、delete、trace、connect;缓存


三、请求的参数类型与响应数据类型多样;网络

 

四、多请求同时并发;多线程

 

五、对请求的健壮性要求较高,要保证请求执行的性能、请求结果及时反馈与相应异常处理;并发

 

六、需对请求任务生命周期和所占资源进行管理(与activity和fragment生命周期联动),以确保性能与程序的稳定性。框架

 

2、Volley核心是对Request的分发与处理,在结构上主要面向接口构建,注重自身的轻便性与功能扩展的灵活性。
简要分析下整个请求流程:socket


一、UI Thread 建立Request、设置Request的优先级并将Request添加到RequestQueue中进行相关处理;post

 

二、在RequestQueue中,会根据Request的是否可缓存将Request放到真正的队列CacheQueue或NetworkQueue;性能

 

三、CacheDispatcher从CacheQueue中根据优先级循环取出Request,而后查询缓存,若是有可用缓存则用Delivery将Request和Response一块儿返回给UI Thread,若是没有有效缓存则将Request从新添加到NetworkQueue中;
google

 

四、NetworkDispatcher从NetworkQueue中根据优先级取出Request进行网络请求,请求完成后若是失败则根据RetryPolicy进行从新请求尝试,若是成功则进行相应缓存处理并用Delivery将Request和Response一块儿返回给UI Thread;
这里面还有其它的相关处理,好比Request中断处理,这里就不一一详述了。

 

3、Volley应用方式

这个主要在toolbox下,google将一些通用的实现放在这个里面,一方面起到示范做用,一方面对于普通需求都可以知足。咱们能够根据业务定制本身的实现。我的认为这一点正是这个框架思想的精髓。

相关文章
相关标签/搜索