简介
Volley是Android上面一个开源的网络框架,只是在应用层面做了封装,最终是调用系统自带的HttpURLConnection (SDK >= 9)来执行网络请求。Volley的源码结构清晰,值得学习和借鉴。源码地址:github.com/google/volley
源码分析:
Volley默认启动五个线程来处理请求,4个处理网络请求(NetworkDispatcher),1个处理缓存逻辑(CacheDispatcher)。可以自己设置网络线程数量。 每个线程维护一个PriorityBlockingQueue队列,循环从请求队列里面拉取Request执行相应任务。
Volley执行完网络请求回调回来的时候都是在UI线程, 通过ExecutorDelivery构造方法传入的Handler来完成。
注意事项
Volley 本身没有维护一个单例,不要每次请求都调用newRequestQueue,需要APP自己封装一个单例。