有时,需要绕过应用程序的堆内存限制并使用超出允许范围的内存。
我想到了一个解决方案,其中包括一种缓存机制,它将字节存储在本机内存中(不是在堆内存中,而是在非托管内存中)。
当然,我会考虑系统的最大可用大小。
所以,对直接缓冲区有所了解,我用它在本机内存中存储了一个字节数组:
final ByteBuffer nativeBytes=ByteBuffer.allocateDirect(bytes.length);
nativeBytes.put(bytes);
但是,似乎在 Android 上,用于此的内存是在堆中使用的,而不是在本机内存中使用的。
到底是怎么回事?是否有一种简单的替代方法可以从本机内存存储和加载数据?