管理大多数使用过的缓存图像的最佳实践

时间:2015-02-27 18:13:44

标签: android image-caching file-storage

本着不重塑自行车的精神,我想知道是否有Android最佳实践方法(我没有通过谷歌找到,但我可能没有明确表达我的正确搜索)保持为下载的位图分配的定义数量的本地存储,这些位图基于最常用(而不是FILO或FIFO)算法保持不变。

所以,我要做的就是抓取一张图片,如果它不在磁盘上并存储并标记为"最近需要"。下次使用时,我会再次将其标记为最近需要的。每次我这样做,我都会浏览所有图像,任何超出最近效用阈值的图像都将被删除。

我的算法还考虑到这样的现实:并非所有图像都是相同的,并且我希望为图像存储分配有限的空间。

我没有要求"如何做到这一点" (因为我知道该怎么做)...我在问自己的自定义实现之前是否已经采用了规定的方法。

2 个答案:

答案 0 :(得分:3)

我认为你需要LruCahe。您可以使用UIL和所有可用的caching机制,也可以使用DiskLruCache创建自己的机制。我认为大多数库都使用LRU作为缓存图像的算法,我不认为它们中的任何一个使用LIFO或FIFO。

答案 1 :(得分:2)

我可以为Android推荐Picasso库。根据网站的功能:

  • 在适配器中处理ImageView回收和下载取消。
  • 复杂的图像转换,内存使用最少。自动
  • 内存和磁盘缓存。

我不能100%确定这是否符合您的要求,但值得一看。