在Picasso Client上设置自定义HTTP客户端缓存的影响

时间:2016-10-12 00:15:34

标签: android picasso okhttp

我使用Picasso下载图像,并使用自定义OKHttp下载客户端实现,我们在其中创建了大约153MB的自定义缓存。我想知道这是否会覆盖Picasso拥有设备上15%分配RAM的默认内存缓存。

1 个答案:

答案 0 :(得分:1)

设置HTTP客户端的磁盘缓存不会影响Picasso的内存缓存。

OkHttp中的磁盘缓存缓存从发出HTTP请求收到的原始响应。它根据HTTP缓存头执行此操作,这些头在响应中返回并将它们存储在文件系统上的LRU中。由于响应存储为不透明字节,因此这些是正在下载的全尺寸图像。

Picasso有一个内存缓存,用于存储已解码和转换的图像。这些是向HTTP客户端请求请求并将其返回的字节(从磁盘缓存或从网络返回)解码为Bitmap对象的结果。这些对象也存储在LRU中,但存储在内存中。

这两个缓存层根本不会互相交互。因此,定义自定义HTTP缓存不会以任何方式影响内存缓存,就像更改内存缓存配置不会影响HTTP缓存的工作方式一样。