今天有时间看了一下Google I/O 2013关于Android的视频,发现了不少干货.其中Volley就是一个帮助Android开发者更简单,更高效的处理网络请求的库,解决了使用原生库请求网络的各种问题.而且速度和稳定性都很不错.

视频地址:http://www.youtube.com/watch?v=yhv8l9F44qo

其主要特征如有:

  • 简单的API来执行REST请求,可以设置优先级、retry、cache等
  • 你不用关心Volley底层的实现.在较低版本( <= GINGERBREAD)的SDK上,Volley采用AndroidHttpClient,否则采用高效的HttpUrlConnection.
  • 请求速度快。在I/ O大会上,Ficus说他们测试了Volley在谷歌几个不同的应用程序上的表现非常不错.
  • 它是可扩展 - 你可以以它为基础,创建自己的自定义类型的请求(响应处理/解析)

volley 没有提供jar包,需要自己手动编译,使用方法:

git clone https://android.googlesource.com/platform/frameworks/volley
cd volley
android update project -p .
ant jar

如果出现网络超时的情况,试试 > git clone http://android.googlesource.com/platform/frameworks/volley android update project -p . 后面有个点.

然后拷贝 bin/volley.jar 到项目的libs 文件夹下面。

PS.简单的试用了一下,也许是因为对API还不太熟悉的原因.总感觉没是没有async-http-client用的上手.async-http-client也是Android上一个不错的处理网络请求的库.虽然Volley也是异步的,但是回调函数没有async-http-client完善.Volley只是简单的成功或失败,而async-http-client除了成功或失败外,还有开始,结束回调函数.这样就比较方便我们请求网络的时候,给用户比较友好的提示.

当然Volley结合Android的AsyncTask或Handler也很容易解决这个问题.既然已经在I/O大会上推出了, 有时间还是需要了解一下.