Android设备的内存
在不同的设备上,每个App可以使用的内存的最大值是不同的,可以通过打开/system/build.prop来查看
1. dalvik.vm.heapstartsize App内存分配的初始大小,这个值的大小会影响App的流畅性和设备内存消耗速度。这个值越小,设备内存消耗就会越慢。但由于初始值较小,当一些较大的App需要更大的内存占用时,会引发垃圾回收和App内存调整的策略,使App变得很慢。反之,这个值越大则设备内存消耗越快,App会更流畅
2. dalvik.vm.heapgrowthlimit 指明了受控App的内存最大值(在AndroidManifest.xml中没有设置android:largeHeap=”@bool/config_largeHeap”,仅仅针对Dalvik中App可以使用的内存,不包括native中App可以使用的内存)。虽然dvm heap是可增长的,但不会超过dalvik.vm.heapgrowthlimit的值,如果超过,会引发内存溢出
3. dalvik.vm.heapsize 表明APP在不受控情况下(在AndroidManifest.xml中设置android:largeHeap=”@bool/config_largeHeap”)可以使用的内存的最大值。无论App是否为受控App,一旦它的dalvik heap size超过这个值,就会OOM
查看APP实时的内存占用
adb shell dumpsys meminfo AppPackageName