Volley深度完全解析

注:转载或修改转载请在**文章开头**标明本文地址,笔者重在分享禁止用于其他用途微

信公众号:

Volley深度完全解析_第1张图片

volley介绍

--------volley是Google在2013年IO大会上提出的一个开源项目,Google针对请求开发不合理的情况,对网络请求,图片异步加载,图片三级缓存防止OOM,做了一套规范操作。Volley具有以下优点:

-网络请求自动调度

-多并发请求网络

-通过高速缓存一致性透明磁盘和内存一致性

-支持请求优先级

-支持取消请求

-容易扩展定制,如重试和回退

-具有调试和跟踪工具

Volley不适合大文件下载,因为Volley会在解析的过程中在内存中保存所有的响应,如果有这些需求,官方推荐可以使用DownLoadManager可在gradle中增加依赖

dependencies {...compile 'com.android.volley:volley:1.0.0'}`

也可以自行下载Volley设置为libraryvolley官方地址https://developer.android.com/training/volley/index.html

配置好编译环境的githubhttps://github.com/THtianhao/android-volley.gitgoogle 

2013 IO大会volley介绍https://www.youtube.com/watch?v=yhv8l9F44qo&feature=player_embedded

Volley原理

Volley的原理想利用volley发一条请求的流程创建一条请求,然后将请求加入到RequestQueue中,RequestQueue会将请求分派到缓存线程中,缓存线程会从缓存中去取这条request,如果在缓存中找到就交付Response,如果没有则放入到网络线程中去请求,请求返回后放入缓存并交付Response。![图片描述](http://img.blog.csdn.net/20170304180111874?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGlhbmhhbzI1ODUyMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

Volley的使用

最基本的使用官方已经做了示例,笔者不再过多描述,笔者强烈建议没有用过Volley的人先看一下Volley的示例参照:

https://developer.android.com/training/volley/simple.html

https://developer.android.com/training/volley/requestqueue.html

https://developer.android.com/training/volley/request.html

https://developer.android.com/training/volley/request-custom.html

Volley源码解析

笔者花了一些时间做了一副Volley的脑图,从图中大家体会一下Volley的整体流程


Volley深度完全解析_第2张图片


详细的源码解析在我的技术博客里面

http://blog.csdn.net/tianhao258520/article/details/58415095

从每个流程都对volley进行了分析,如果大家还有不明白的可以下载源码进行分析,有一些细节我没有讲,可以自己多看看,我将配置好的环境放到了git上面大家可以直接下载https://github.com/THtianhao/android-volley.git我意在分享模块化不分享碎片内容,如果有错误的地方大家可以指出,可以在评论多提建议,如果对你有帮助希望关注,我会持续写一些干货给大家

你可能感兴趣的:(Volley深度完全解析)