Android中“NativeHeapAllocatedSize”和“Runtime totalMemory”之间的区别是什么,以防止“OutOfmemory异常”?

时间:2011-05-26 10:02:30

标签: android

你好我正在做一些运行时计算来获取NativeHeap内存并在运行时分配内存,所以任何人都可以建议我

“Debug.getNativeHeapAllocatedSize()”和“Runtime.getRuntime()。totalMemory()”

之间的区别应该是什么?

因此可以通过OutOf Memory Exception来阻止app。

由于

1 个答案:

答案 0 :(得分:1)

Runtime.getRuntime().totalMemory()

返回正在运行的程序可用的内存总量。

getNativeHeapAllocatedSize()

对于HoneyComb以下的设备,大多数巨大的分配都会延迟到本机堆(例如Bitmaps)。因此,这个api有助于找出分配了多少本机堆。

当没有可以被DVM释放的对象时,会发生OOM错误。通常,你可以在堆中使用大约16MB(对于标准手机)。检查your logs*以查看GC语句,其中包含有关内存分配量的信息。

我认为不应该有固定比率导致OOM错误。就像你加载一个非常大的位图的情况一样,这里使用的本机内存是巨大的。

  • Slide 25