android内存配置相关说明

1、执行 adb shell命令,然后执行 cat /system/build.prop命令即可看到android配置的内存运行相关信息。

MacBook-Pro:~ root$ adb shell
mido:/ $ cat /system/build.prop

2、找到dalvik.vm配置项,如下所示(该配置为红米note4x高配版)

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

dalvik.vm.heapstartsize:堆分配的初始大小。这个值越大应用启动越流畅。

dalvik.vm.heapgrowthlimit:正常情况下(即未设置android:largeHeap="true")dalvik能申请到的最大堆内存,超过这个大小将会引发oom(out of memory)异常。

dalvik.vm.heapsize:所有情况下(包括设置android:largeHeap="true"的情形)的最大堆内存值,超过直接oom。

所以,在我们未设置android:largeHeap="true"的时候,只要申请的内存超过了heapgrowthlimit就会触发oom,而当设置android:largeHeap="true"的时候,只有内存超过了heapsize才会触发oom。heapsize已经是该应用能申请的最大内存(这里不包括native申请的内存)。

dalvik.vm.heaptargetutilization:当前存活对象的对大小 / 堆大小
英文解释:This converts to a -XX:HeapTargetUtilization option. It gives the VM a hint as to how full the managed heap should be allowed to become.

dalvik.vm.heapminfree:单次内存调整的最小值
dalvik.vm.heapmaxfree:单次内存调整的最大值
英文解释:These converts to -XX:HeapMinFree and -XX:HeapMaxFree, respectively. These are used in the GC "soft limit" heuristics.

你可能感兴趣的:(android内存配置相关说明)