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

问题描述

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

解决方法

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...