代码中获取堆内存大小(单位为mb)
ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); Log.d(TAG, "largeHeap size: "+am.getLargeMemoryClass());
Log.d(TAG, "正常内存 size: "+am.getMemoryClass());
原理为读取system目录下的build.prop文件中的value值:
dalvik.vm.heapstartsize=8m //起始分配内存大小
dalvik.vm.heapgrowthlimit=192m //默认能申请的最大内存
dalvik.vm.heapsize=512m //largeHeap属性下能申请到的最大内存 dalvik.vm.heaptargetutilization=0.75 //理想的堆内存利用率,影响GC dalvik.vm.heapminfree=512k //单次堆内存调整的最小值
dalvik.vm.heapmaxfree=8m //单次堆内存调整的最大值
文件位置
属性值存放在system目录下的build.prop文件中
adb shell命令查看堆内存分布:
cat /system/build.prop | grep heap