码迷,mamicode.com
首页 > 其他好文 > 详细

初步使用Volley-了解Volley基本用法

时间:2015-04-11 23:44:11      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

就在刚才恰恰初步看完了Volley源码,最主要的体会有两个:

1.必须了解Http协议,或者说必须熟悉如何构造Http请求和如何解析Http响应。

2.必须熟悉Cache的基本原理,并结合Http响应来分析如何进行Cache的最佳应用。

3.熟悉各种Queue和List,Map等的基本操作,了解线程同步和互斥锁。

4.最好用几张纸来记录主要的类的结构,以便分析关联性。

 

下面就是推荐如何看源码了。对于这个不熟悉的项目结构,我看到这样的目录结构:

技术分享

 

因此我首先选择从外部查看,先看接口类,因为接口一般是比较简单的,而且一般都能了解某些接口的基本功能,比如:

Cache接口,这个接口就定义了一些主要的管理缓存的的属性和一个Entry类来管理请求/响应缓存的相关数据,这个通过后来的了解我知道可能是用来判断本地缓存是否过期的(这里插一句,任何直接读取本地数据都比从网络上获取数据快,做出这个假设能帮助我很好的理解Cache,虽然不一定对)。

按照这个思路,我又看了一个Network接口:

这个Network接口虽然简单到只有一个方法,但是涉及到了三种在Volley中定义的类,按照原则,我首先查看了参数中那个Request类的定义,这样就揭开了第一个复杂类的学习,抽象Request类,这个是所有请求的基类,我们将来如果有需要自定义的请求格式可以从这里来继承定义,比如后来在toolbox中看到的三种基本数据的请求方式,Image/Json/String。下面我就说一下这三种请求的用法,有涉及的类我会简略带过,需要学习的请自行研究Volley源码。

 

 1.

首先是最基本的StringRequest,请求的是一段字符串资源:

技术分享

这里面可以看到,有一个RequestQueue被使用了,这个队列是用来调度一应Request的一个处理队列,其中包含了一系列的调度工具和一系列的优化方法,这也是除了Request之外的我第二个看到的复杂类结构,在这个类中有一系列的其他类出现,比如缓存调度,网络调度,几个等待和处理的队列等等,我总结了一个简单的图,不论对错,是个参考:

技术分享

 

,回到正题,我们看一下结果:

技术分享

这就是构造的最简单的一个fetch字符串的方法。

 

2.获取JSON数据。

对于JSON类型的数据有两个相关的请求类,一个针对JsonObject,另一个针对JsonArray,从Request继承后将泛型参数分别定成了JsonObject和JsonArray。

对于JsonObject和JsonArray其实界线并非相当明显,一般数据都是JsonObject的,当然视情况而定,先测试的是JsonObject的:

技术分享

结果:

技术分享

 

 

由于实在不太好找jsonarray的数据,所以在这里就没有办法演示,只能上段代码,可以看出JSONArray的请求可以比较简单构造:

技术分享

 

3.最后是图片ImageRequest请求的介绍,由于某些原因,图片请求类没有仔细看,但是大略看了一下发现无非也就是自适应缩放等内容,有一个名叫Picasso的图片库可能更好,等过段时间我再看看它的源码再做详细讨论:

技术分享

 

刚才在Volley中使用Image请求的结果是:

技术分享

 

Ok,大体上就是这样,我坚信,最简单的就是最好的,当然,这个简单可能有多种意思。

 

下一篇我可能会结合Http协议的一些知识来介绍Volley中对于Request和Response的封装,前提是我看完RFC不会懵住。

初步使用Volley-了解Volley基本用法

标签:

原文地址:http://www.cnblogs.com/lhyz/p/4418424.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!