本着不重塑自行车的精神,我想知道是否有Android最佳实践方法(我没有通过谷歌找到,但我可能没有明确表达我的正确搜索)保持为下载的位图分配的定义数量的本地存储,这些位图基于最常用(而不是FILO或FIFO)算法保持不变。
所以,我要做的就是抓取一张图片,如果它不在磁盘上并存储并标记为"最近需要"。下次使用时,我会再次将其标记为最近需要的。每次我这样做,我都会浏览所有图像,任何超出最近效用阈值的图像都将被删除。
我的算法还考虑到这样的现实:并非所有图像都是相同的,并且我希望为图像存储分配有限的空间。
我没有要求"如何做到这一点" (因为我知道该怎么做)...我在问自己的自定义实现之前是否已经采用了规定的方法。
答案 0 :(得分:3)
我认为你需要LruCahe。您可以使用UIL和所有可用的caching机制,也可以使用DiskLruCache创建自己的机制。我认为大多数库都使用LRU作为缓存图像的算法,我不认为它们中的任何一个使用LIFO或FIFO。
答案 1 :(得分:2)
我可以为Android推荐Picasso库。根据网站的功能:
我不能100%确定这是否符合您的要求,但值得一看。