在Android上分配超过512mb ram

时间:2015-07-29 19:28:06

标签: android memory-management allocation

我正在编写一个小巧的Android应用程序,它可以填充设备的内存以进行测试。 但我不允许分配超过512MB。 错误日志显示:

Throwing OutOfMemoryError "Failed to allocate a 1000012 byte allocation with 229520 free bytes and 224KB until OOM"

Alloc partial concurrent mark sweep GC freed 6(192B) AllocSpace objects, 0(0B) LOS objects, 0% free, 511MB/512MB 

Clamp target GC heap from 527MB to 512MB

我试图在捕获oom异常后分配更多内存 - 但没有成功。

有没有办法分配更多内存?

1 个答案:

答案 0 :(得分:2)

不是Java。每个Android应用都有一个堆限制。通常情况下,这比512MB低很多;我假设您已将android:largeHeap="true"添加到清单中以使其变大。

如果您需要分配更多,则需要使用NDK,因为在本机代码中进行的分配不计入Dalvik / ART堆限制。