LruCache 是否受到 Android 应用程序内存 space 的限制?

Is the LruCache constrained by the Android app memory space?

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

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

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

I'm looking at the docs and trying to understand if the LruCache is competing for heap resources with the rest of my app or if it's actually using some sort of elaborate disk swapping mechanism.

它正在使用您应用的堆 space。您可以查看 the LRUCache source code 来确认这一点。

However, if the LruCache is constrained by the size of the App's heap memory allotment this obviously won't work.

正确。

if I need to roll my own or if there's an Android native disk swap memory class that I'm overlooking

在 Android 应用级别确实没有 "disk swap memory" 的概念,甚至很少有设备在 OS 级别实现它。