在Android中缓存文件时的最佳实践

smi*_*324 18 android caching memory-management image

我目前有我的应用程序缓存图像文件在应用程序的cache子目录中.的图像以使用ListView,并存储在一个HashMapSoftReferencesBitmaps.

所以我的问题是,在不膨胀我的应用程序使用的空间的情况下缓存这些图像文件的最佳方法是什么,并且从用户角度保持响应.

我关心的事情:

我知道用户可以清除缓存,并且当内部存储器空间不足时自动完成,但我觉得大多数用户会看到几个MB应用程序并将其卸载.此外,如果空间一直很低,我的应用程序将继续下载图像,使其显得更慢.

大多数设备都预先安装了SD卡,但未插入SD卡时该怎么办?与内部存储相比,SD卡也可能更慢,从而影响我的应用程序的性能.

我应该包含一个选项来选择缓存的位置吗?

我应该尝试管理缓存的大小(在/ cache或/ sdcard中)还是忘记它?

感谢您的时间(我知道的很长一段时间),请发布任何相关经验.

Ben*_*bin 15

我无法为您提供全面的最佳实践,但我可以提供迄今为止我学到的知识:

管理缓存是个好主意.我的应用程序的缓存是这样的,我知道我永远不会需要超过一定数量的缓存文件,所以每当我将新文件插入缓存时,我删除最旧的文件,直到我达到我设置的限制.您可以根据尺寸或年龄来做类似的事情.

如果缓存需要占用大量空间,则缓存到SD卡(如果可用)是个好主意.您需要仔细管理该空间,因为它不会自动为您清除该空间.如果要缓存图像文件,请确保将它们放在以点开头的目录中,例如"/yourAppHere/.cache".这将使图像不会出现在图库中,这真的很烦人.

让用户选择缓存的位置对我来说似乎有些过分,但如果您的观众非常讨厌,可能会感激不尽.

在缓存到SD时我没有注意到很多惩罚,但我不知道你的应用程序如何使用这些信息.