在Android中使用EhCache缓存位图图片?

3
我正在编写一款Android应用程序,需要缓存许多不同大小(从48x48到500x500像素)的图像。这些图像是从许多不同的来源(比如:用户选择一个来源,浏览一堆图像,更改来源,再浏览一堆图像等)通过网络获取的。我想为这些图像实现缓存,因为我不希望在某人浏览已经看过的图像时再次发送HTTP请求。显然,内存使用情况非常重要,所以EhCache就派上用场了,因为它提供了许多不同的选项来限制缓存、将其扩展到磁盘等。
这是缓存这些图像的正确/最佳方法吗?我注意到很多应用程序直接将缓存写入SD卡上的磁盘,但出于速度/方便性的考虑,我希望避免这种方式。

你尝试过在内存缓存之前将图像缓存在磁盘上吗?请记住,手机上的资源非常有限,当系统需要回收资源时,它会杀死你的应用程序,但磁盘始终可用。 - dongshengcn
那我需要编写一个完整的缓存系统来进行磁盘缓存吗?是否有现成的库可以简化这个过程? - Naftuli Kay
1个回答

2

Android不会管理此目录,除非存储空间不足(这不是缓存应该工作的方式):“当设备的内部存储空间不足时,Android可能会删除这些缓存文件以回收空间。但是,您不应依赖系统来为您清理这些文件。您应始终自己维护缓存文件,并保持在合理的空间限制内,例如1MB。当用户卸载您的应用程序时,这些文件将被删除。” - MrSnowflake
@MrSnowflake 仅仅因为Droid-Fu使用缓存目录并不意味着它不能在使用后进行清理。难道不是这样吗?我认为Hugo的观点是它使用了适当的存储位置,这个位置至少有资格被Android在必要时清理。 - spaaarky21
@spaaarky21,我只是在说操作系统不会为你完成这个任务。如果Droid-Fu可以做到,那太好了!否则你应该自己动手! - MrSnowflake

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接