0

我正在查看文档并试图了解 LruCache 是否正在与我的应用程序的其余部分竞争堆资源,或者它是否实际上使用了某种精心设计的磁盘交换机制。

我问的原因是我想为缓存分配大量内存(比如 gig),以便如果设备失去其 Internet 连接,大量图像数据可以在本地保存。但是,如果 LruCache 受到应用程序堆内存分配大小的限制,这显然是行不通的。

我希望有人可以向我指出有关此功能如何工作的更详细的文档,以及此 * 不是处理此需求的正确功能,如果我需要自己滚动,或者是否有一个 Android 本机磁盘交换内存类我忽略了可能应该与 LruCache 结合使用(或完全单独使用?)

4

1 回答 1

2

我正在查看文档并试图了解 LruCache 是否正在与我的应用程序的其余部分竞争堆资源,或者它是否实际上使用了某种精心设计的磁盘交换机制。

它正在使用您的应用程序的堆空间。您可以查看源代码来确认这一点LRUCache

但是,如果 LruCache 受到应用程序堆内存分配大小的限制,这显然是行不通的。

正确的。

如果我需要自己动手,或者如果有一个我忽略的 Android 本机磁盘交换内存类

在 Android 应用程序级别确实没有“磁盘交换内存”的概念,很少有设备甚至在操作系统级别实现它。

于 2016-11-16T19:38:25.573 回答