### Volley框架:
google2013发布的android平台上的网络请求库
使用场景:并发、效率、性能要求高的场景
- **特点**:
1. 网络通信更快、更简单,效率高、稳定性高
2. Get、Post网络请求及网络图像的高效率异步请求
3. 对网络请求进行排序、进行优先级处理
4. 有网络请求的缓存
5. 多级别取消请求
6. 和Activity生命周期的联动
- **缺点**:
不适合进行网络数据的上传和下载
为什么使用volley?
- 功能上:
1. 高效的Get、Post方式的数据请求交互
2. 网络图片加载和缓存、节省流量
- 其他:
3. google官方推出
4. 性能很稳定和强劲
- **Volley的网络请求队列建立和取消队列请求**
建立请求队列
取消某一个请求或者所有的请求队列
- **Volley和Activity生命周期的联动**
- 特点:
- 可以在Activity销毁时候,同时关闭请求
- 关键点
- 设置Tag标签,onStop()里执行取消请求
>[info] **注意**:Volley在API>=9时使用了HttpUrlConnection,去除了HttpClient,小于9时使用了HttpClient
- **google 官方的介绍**
具有以下优点:
● 网络请求的自动调度。
● 多个并发的网络连接。
● 透明的磁盘和内存响应缓存与标准的HTTP [缓存一致性](http://note.youdao.com/noteshare?id=f5077d62d2fb66fa584d83dbf052fa04&sub=389849BDF04C4D89A1D0C7ACC0E951C5)。
● 支持请求优先级。
● 取消请求API。您可以取消一个请求,也可以设置请求取消的块或范围。
● 缓解定制,例如,用于重试和退避。
● 强大的排序,可以很容易地用从网络异步获取的数据填充你的UI界面。
● 调试和跟踪工具
Volley是不适合大型下载或流媒体业务,因为Volley在分析过程中在内存中保存所有响应。对于大的下载操作,可以考虑使用类似的替代[DownloadManager](https://developer.android.com/reference/android/app/DownloadManager.html?hl=zh-cn)。
Volley非常不适合大的文件流操作,例如上传和下载。因为Volley会把所有的服务器端返回的数据在解析期间缓存进内存。大量的下载操作可以考虑用DownLoaderManager和异步加载来实现。
从官网clone代码时,报错链接超时,可以采用[这篇博客](http://note.youdao.com/noteshare?id=f5077d62d2fb66fa584d83dbf052fa04&sub=389849BDF04C4D89A1D0C7ACC0E951C5)的方法,(ps:我也用的是蓝灯代理的vpn)。
clone成功后,采用google官网提供的方法,[创建一个android库](http://note.youdao.com/noteshare?id=f5077d62d2fb66fa584d83dbf052fa04&sub=389849BDF04C4D89A1D0C7ACC0E951C5),创建成功后,将该库添加到你的Demo中作为依赖库即可。
* Volley和NoHttp的对比图示
![](https://box.kancloud.cn/866384e8eeaa4d1eb4844c69d1f5e853_950x634.png)