管理最常用缓存图像的最佳实践

Best practice for managing most used cached images

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

所以,我要做的是抓取一个图像(如果它不在磁盘上)并存储它并将其标记为 "most recently needed"。下次使用它时,我会再次将其标记为最近需要的。每次我这样做时,我都会检查所有图像,任何超出最近实用程序阈值的图像都将被删除。

我的算法还考虑了这样一个现实,即并非所有图像都是平等创建的,而且我希望分配给图像存储的空间有限space。

我不是在要求 "how to do this"(因为我知道该怎么做)...我是在问在我开始自己的自定义实施之前是否已经有我应该遵循的规定方法.

我可以为 Android 推荐 Picasso 库。每个站点的功能:

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

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

我认为你需要 LruCahe. you can use UIL and all available caching mechanism or create your own with DiskLruCache。我认为大多数库都使用 LRU 作为缓存图像的算法,我认为它们中没有一个使用 LIFO 或 FIFO。