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里面,来完成请求操作.

posted @ 2016-03-08 23:37  awayaaaaaaaa  阅读(901)  评论(0编辑  收藏  举报