Volley的源码分析

1.Volley的网络框架是谷歌在13年的Io大会里新开的一个开源框架,它在android2.3之前是用httpclient进行请求的,在2.3之后用的httpurlconnction用的,因为2.3之前的httpclient还不完美,还有很多bug,2.3以后呢,修复了这些bug而且简单易用,

2重要的类有:

  requetQueue:缓存request的队列,根据优先级的高低排序

CacheDispather: 一个处理请求缓存的线程, 不断的从requestQueue里取出request,然后取出对应的request对应的缓存,若缓存存在就调用对应的responedelivery做后续分发处理,如果没有缓存或缓存失效,就需要从networkdispather里进行网络上获取结果

NetworkDispatcher:一个处理网络请求的线程,和catchDispather相似,从网络上得到响应后,通过responsDelivery做后续分发处理,并判断是否做缓存处理

responseDelivery:用作分发处理,利用handler把结果回调到主线程中,即listener, errorlistener接口,主要实现类是excutorDelivery类

httpstack:主要作用是发起http请求,子类是hurlstack和httpurlstack,分别应付着httpclient,httpurlconneciton

network:处理stack发起的网络请求,把request转换为reponse,  实现类是basicnetwork;

cache:网络请求的缓存,在cacheDispatcher里获取cache,,在networkDispatcher里判断是否保存缓存,实现类是Diskbasecache,

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容