在Android中缓存文件时的最佳做法是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

我的问题是这样的,什么是缓存这些图像文件的最佳方式,而不会膨胀我的应用程序使用的空间,并且从用户的角度来看仍然是响应式的。

我关心的事情是:

我知道用户可以清除缓存,并在内存空间不足时自动完成缓存,但我感觉大多数用户会看到几MB的应用并将其卸载。此外,如果空间不断减少,我的应用程序将继续下载图像,使其显得较慢。

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

我是否应该包含选择缓存位置的选项?

提问于
用户回答回答于

我无法为你提供一套全面的最佳实践,但我可以提供迄今为止所了解的内容:

管理你的缓存是个好主意。我的应用程序的缓存是这样的,我知道我永远不会需要超过一定数量的缓存文件,所以无论何时将新文件插入缓存中,我都会删除最早的文件,直到我处于设置的限制范围内。你可以根据尺寸做一些类似的事情。

用户回答回答于

你可能希望将其与常规组合,HashMap以防止整个缓存每隔几分钟就会被清除。

EclipseLink有几个不同的缓存实现和相当不错的文档。你可以利用实现中的一些想法(例如,LRU,MRU等)。例如:

  • 硬缓存
  • 软缓存
  • 结合硬/软缓存

我建议根据硬盘规格将其调整到不同的设备。这通常是不好的设计,但你的软件运行的硬件的范围要求它,例如:

  • 检测SD卡上的可用内存量。大多数新款智能手机都配备了多GB的SD卡,而这些卡很难满足大多数用户的日常使用需求。消失!您还可以在启动时检测SD卡上的可用空间量,并在启动时增加/减少缓存的大小。
  • 检测可用内存的数量并配置您的高速缓存。如果用户使用硬件密集型应用程序,我不认为它会占用200MB内存,并提供非常快速的用户体验,尤其是因为他们花费了大量资金购买了一款拥有1 -2GB内存。

扫码关注云+社区