微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为了防止“内存不足异常”,Android中的“ NativeHeapAllocatedSize”和“ Runtime totalMemory”之间应该有什么区别?

如何解决为了防止“内存不足异常”,Android中的“ NativeHeapAllocatedSize”和“ Runtime totalMemory”之间应该有什么区别?

| 你好,我正在做一些运行时计算,以便在运行时获取NativeHeap内存和分配的内存,因此任何人都可以建议我 \“ Debug.getNativeHeapAllocatedSize()\”和\“ Runtime.getRuntime()。totalMemory()\”之间应该有什么区别? 因此可以通过内存不足异常阻止应用程序。 谢谢     

解决方法

Runtime.getRuntime().totalMemory()
返回正在运行的程序可用的内存总量。
getNativeHeapAllocatedSize()
对于HoneyComb以下的设备,大多数巨大的分配将延迟到本机堆(例如,位图)。因此,此api对于查找分配了多少本机堆很有用。 当DVM无法释放任何对象时,会发生OOM错误。通常,堆中大约有16MB可用于播放(对于标准手机)。检查您的日志*,以查看GC语句,其中包含有关已分配多少内存的信息。 我不认为应该有固定的比率来导致OOM错误。就像加载非常大的位图时一样,这里使用的本机内存也很大。 投影片25     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。