在开发中,我们使用的框架可以说是很多,从开始的原生的网络请求HttpClient到httpUrlConnection,再到后面那些android大神封装的AsyncHttpClient,异步请求网络,和以前的框架Afinal 到 Xutils3.0等一系列的网络框架.
知道google推出最新的框架volley,又是在技术上推进了一大步.也许现在我们大家都在说,volley都已经过时了,现在大家都在使用OkHttp3,OKgo,RxJava+Retrofit等一系列最新的框架.虽然都会用,网络框架,当面试官问到你所用的网络框架的原理的时候.你一下子就云里雾里了.网络框架使我们app的核心部分,我们不仅知其然,还要知其所以然.对其源码进行解剖.
看过官方文档的开发人员,就知道,官方给了一个volley的工作流程图,如下:
也许你光看这样的流程图,你根本不知道讲的什么.那么接下来我们结合源代码,进行一步一步的分析,也许你就明白
首先使用volley的第一步骤是什么呢?
Volley.newRequestQueue(Context)来获取一个RequestQueue对象,接着我们就从这个方法开始入手
代码:
从代码中我们可以清楚的看到,该方法只执行了一个方法,那么我们进入这个方法可以看到
我们可以看到了面的statck,其实hurlStatck其实内部就是HttpUrlConnection进行网络通信的.最后调用了Start()方法
接下来我们进入start()方法,看执行了什么
先是创建了CacheDispacher实例,然后调用了他的start方法,接着for循环4次,就会有5个线程在后台运行,不断的等待网络请求的到来,得到RequestQueue后,我们调用add方法. 未完待续…………