0

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

所以,我要做的是抓取一张图像(如果它还没有在磁盘上)并将其存储并将其标记为“最近需要的”。下次使用它时,我会再次将其标记为最近需要的。每次我这样做时,我都会浏览所有图像,任何超过最近实用程序阈值的图像都将被删除。

我的算法还考虑到并非所有图像都是平等的,并且我希望为图像存储分配有限的空间。

我不是在问“如何做到这一点”(因为我知道如何做到这一点)......我问的是在我开始自己的自定义实现之前是否已经有我应该遵循的规定方法。

4

2 回答 2

3

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

于 2015-02-27T18:54:13.727 回答
2

我可以推荐适用于 Android 的Picasso库。根据网站的特点:

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

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

于 2015-02-27T18:37:52.490 回答