目前,我的应用程序在应用程序的cache
子目录中缓存图像文件。图像在ListView
中使用,并存储在SoftReferences
到Bitmaps
的HashMap
中。
所以我的问题是,从用户的角度来看,缓存这些图像文件的最好方法是什么,而不会增加我的应用程序使用的空间并保持响应能力。
我关心的事情:
我知道用户可以清除缓存,当内存空间不足时,它会自动完成,但我觉得大多数用户会看到几MB的应用程序并卸载它。此外,如果空间一直很低,我的应用程序将继续下载图像,使其看起来更慢。
大部分设备都预装了SD卡,但如果SD卡没有插入,我该怎么办?与内部存储相比,SD卡也可能更慢,从而影响我的应用程序的性能。
我是否应该包含一个选项来选择缓存的位置?
我应该尝试管理缓存的大小(是在/cache还是/sdcard中),还是干脆忘了它?
感谢您的时间(这是一个很长的我知道),并请张贴任何相关的经验。
发布于 2010-08-24 01:12:43
我不能为您提供一套全面的最佳实践,但我可以提供我到目前为止所学到的:
管理缓存是一个好主意。我的应用程序的缓存是这样的,我知道我永远不会需要超过一定数量的缓存文件,所以每当我向缓存中插入新文件时,我都会删除最旧的文件,直到我达到了设置的限制。你可以根据大小或者简单的年龄来做类似的事情。
如果您的缓存需要占用大量空间,那么缓存到SD卡是一个好主意。您需要同样小心地管理该空间,因为它不会自动为您清除该空间。如果您正在缓存图像文件,请确保将它们放在一个以点开头的目录中,如"/yourAppHere/.cache“。这将阻止图像出现在图库中,这真的很烦人。
让用户选择缓存的位置对我来说似乎有点过头了,但如果你的读者是非常极客,这可能会很受欢迎。
我没有注意到缓存到SD时会有多大的损失,但我不知道你的应用程序是如何使用这些信息的。
https://stackoverflow.com/questions/3536639
复制相似问题