我目前的应用程序将图像文件缓存在cache
应用程序的子目录。这些图像用于ListView
并存储在HashMap
of SoftReferences
to Bitmaps
.
所以我的问题是,缓存这些图像文件的最佳方法是什么,而不增加我的应用程序使用的空间,并且从用户的角度保持响应。
我关心的事情:
我知道用户可以清除缓存,并且当内部存储器空间不足时,它会自动完成,但我觉得大多数用户会看到几个 MB 的应用程序并将其卸载。此外,如果空间持续不足,我的应用程序将继续下载图像,使其显得更慢。
大多数设备都预装了SD卡,但是如果没有插入SD卡怎么办?与内部存储相比,SD 卡也可能速度较慢,从而影响我的应用程序的性能。
我应该包含一个选择缓存位置的选项吗?
我应该尝试管理缓存的大小(无论是在 /cache 还是 /sdcard 中)还是干脆忘记它?
感谢您抽出宝贵时间(我知道这个时间很长),请发布任何相关经验。
我无法为您提供一套全面的最佳实践,但我可以提供我迄今为止学到的知识:
管理缓存是个好主意。我的应用程序的缓存是这样的,我知道我永远不会需要超过一定数量的缓存文件,因此每当我将新文件插入缓存时,我都会删除最旧的文件,直到低于我设置的限制。您可以根据体型或简单的年龄做类似的事情。
如果您的缓存需要占用大量空间,则缓存到 SD 卡(如果可用)是一个好主意。您需要同样仔细地管理该空间,因为它不会自动为您清理该空间。如果您要缓存图像文件,请务必将它们放在以点开头的目录中,例如“/yourAppHere/.cache”。这将使图像无法显示在图库中,这确实很烦人。
让用户选择缓存的位置对我来说似乎有点矫枉过正,但如果您的受众非常极客,那么可能会很感激。
我没有注意到缓存到 SD 时有太大的损失,但我不知道您的应用程序如何使用该信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)