Volley框架的原理剖析-->

Posted aWay01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Volley框架的原理剖析-->相关的知识,希望对你有一定的参考价值。

Volley的主要特点:

  1.扩展性强.Volley中大多数都是基于接口的设计,可配置性强.

  2.一定程度符合Http规范,包括返回ResponseCode的处理,请求头的处理,缓存机制的支持等.并支持重试及优先级定义.

  3.默认android2.3及以上基于HttpURLConnection,2.3以下基于HttpCllient.

  4.提供简便的图片加载工具.

Volley主要是通过两种Dispatch Thread不断从RequestQueue中取出请求,根据是否已缓存调用CacheNetwork这两类数据获取接口之一,从内存缓存或是服务器取得请求的数据,然后交由ResponseDelivery去做结果分发及回调处理。

  Volley 的调用比较简单,通过 newRequestQueue(…) 函数新建并启动一个请求队列RequestQueue后,只需要往这个RequestQueue不断 add Request 即可。

  Volley:Volley 对外暴露的 API,通过 newRequestQueue(…) 函数新建并启动一个请求队列RequestQueue

  Request:表示一个请求的抽象类。StringRequestJsonRequestImageRequest 都是它的子类,表示某种类型的请求。

  RequestQueue:表示请求队列,里面包含一个CacheDispatcher(用于处理走缓存请求的调度线程)、NetworkDispatcher数组(用于处理走网络请求的调度线程),一个ResponseDelivery(返回结果分发接口),通过 start() 函数启动时会启动CacheDispatcherNetworkDispatchers

//----------------------------------------------------------------------------------------------

  Volley.java是个工具类,作用是构建一个可用于添加网络请求的RequestQueue对象.

  Volley.java 有两个重载的静态方法。

  public static RequestQueue newRequestQueue(Context context)

  public static RequestQueue newRequestQueue(Context context, HttpStack stack)

  第一个方法的实现调用了第二个方法,传 HttpStack 参数为 null。
  第二个方法中,如果 HttpStatck 参数为 null,则如果系统在 Gingerbread 及之后(即 API Level >= 9),采用基于 HttpURLConnection 的 HurlStack,如果小于 9,采用基于 HttpClient 的 HttpClientStack。

  RequestQueue.java:Volley框架的核心类,将请求Request加入到一个运行的RequestQueue里面,来完成请求操作.

以上是关于Volley框架的原理剖析-->的主要内容,如果未能解决你的问题,请参考以下文章

Volley源码解析——从实现角度深入剖析volley

Volley工作原理与设计模式

如何在 Android Volley 中判断 TLS 版本

Volley框架源代码分析

Android 选项卡式活动通过 volley 添加新片段

Volley框架源码分析