查看当前手机单个应用所能使用的最大内存


可以在 manifest 中  application  节点设置   largeHeap = true   来增大 单个应用 最大可使用内存


参考:https://gold.xitu.io/entry/58476edaac502e006ce3fa7e



adb  shell 

cat /system/build.prop



这个文件路径是 /system/build.prop ,由于文件比较大,这里我们只截取关于dalvik内存的配置信息,如下。

dalvik.vm.heapstartsize=8m
dalvik.vm.heapgrowthlimit=192m
dalvik.vm.heapsize=512m
dalvik.vm.heaptargetutilization=0.75
dalvik.vm.heapminfree=2m
dalvik.vm.heapmaxfree=8m

上面有诸多配置,但从字面意思也不难理解,为了正确理解,有必要逐一解释一下。

dalvik.vm.heapstartsize=8m 

相当于虚拟机的 -Xms配置,该项用来设置堆内存的初始大小。

dalvik.vm.heapgrowthlimit=192m 

相当于虚拟机的 -XX:HeapGrowthLimit配置,该项用来设置一个标准的应用的最大堆内存大小。一个标准的应用就是没有使用android:largeHeap的应用。

dalvik.vm.heapsize=512m 

相当于虚拟机的 -Xmx配置,该项设置了使用android:largeHeap的应用的最大堆内存大小。

dalvik.vm.heaptargetutilization=0.75 

相当于虚拟机的 -XX:HeapTargetUtilization,该项用来设置当前理想的堆内存利用率。其取值位于0与1之间。当GC进行完垃圾回收之后,Dalvik的堆内存会进行相应的调整,通常结果是当前存活的对象的大小与堆内存大小做除法,得到的值为这个选项的设置,即这里的0.75。注意,这只是一个参考值, Dalvik虚拟机也可以忽略此设置 

dalvik.vm.heapminfree=2m 与 dalvik.vm.heapmaxfree=8m 

dalvik.vm.heapminfree对应的是-XX:HeapMinFree配置,用来设置单次堆内存调整的最小值。 dalvik.vm.heapmaxfree 对应的是-XX:HeapMaxFree配置,用来设置单次堆内存调整的最大值。通常情况下,还需要结合上面的 -XX:HeapTargetUtilization的值,才能确定内存调整时,需要调整的大小。



Log.e("pengtao", "max memory = " + Runtime.getRuntime().maxMemory());Log.e("pengtao", "free memory = " + Runtime.getRuntime().freeMemory());Log.e("pengtao", "total memory = " + Runtime.getRuntime().totalMemory());ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);Log.e("pengtao", "memoryClass = " + Integer.toString(am.getMemoryClass()));Log.e("pengtao", "largememoryClass = " + Integer.toString(am.getLargeMemoryClass()));


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值