Volley

volley

RequestQueue
CacheDispatcher,一个线程
NetWorkDispatcher,有4个线程

有stop(),finish()方法关闭

支持StringRequest,JsonRequest,ImageRequest,ImageLoader,ImageLoaderListener


BlockingQueue == 0时会一直阻塞

分层解析

基础层
异常
log
重试机制
缓存


网络层

控制层
dispatcher

应用层

读懂Volley,必须要理解的几个问题
https://blog.csdn.net/fenggering/article/details/88563418

“史诗级”的Volley源码您真的彻底弄懂了?
https://blog.csdn.net/zengqiang11111/article/details/75275871

#### Volley之ByteArrayPool——LruCache实现
2个byte数组,一个LinkedList,一个ArrayList

```
 /**
     * byte[]待删集合,记录了byte[]的使用顺序。当缓存的byte数目超过指定的最大值时,会回收该list集合中的第一个元素。
     * 每一次从变量mBuffersBySize中获取到合适的byte[]时,会将返回值从该集合中删除,因为这个byte[]是最近使用的。
     * 每一次回收该集合中第0个元素,保证了回收的byte[]是使用时间最久远的。
     */
    private List<byte[]> mBuffersByLastUse = new LinkedList<>();
    /**
     * byte[]的真正缓存list集合。每一次获取时都是从该集合中获取或者新生成
     */
    private List<byte[]> mBuffersBySize = new ArrayList<>(64);

```

## 源码解析
http://www.codekk.com/open-source-project-analysis/detail/Android/grumoon/Volley%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值