Large Heap作用

895 阅读1分钟

代码中获取堆内存大小(单位为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