android app内存使用限制

1. app内存限制

  Android给每个App分配一个VM,让App运行在dalvik上,这样即使App崩溃也不会影响到系统。系统给VM分配了一定的内存大小,App可以申请使用的内存大小不能超过此硬性逻辑限制,就算物理内存富余,如果应用超出VM最大内存,就会出现内存溢出crash。
  由程序控制操作的内存空间在heap上,分java heapsizenative heapsize,Java申请的内存在vm heap上,所以如果java申请的内存大小超过VM的逻辑内存限制,就会出现内存溢出的异常。native层内存申请不受其限制,native层受native process对内存大小的限制。

app_heapSize.png

2. 查看Android设备上的对APP的内存限制

主要查看系统配置文件 build.prop,我们可以通过adb shell在 命令行窗口查看

  1. 查看设备app内存限制
    adb shell getprop | findstr dalvik.vm.heapgrowthlimit
    heapgrowthlimit
  2. Android app可以在AndroidManifast.xml里的标签里加入android:largeHeap="true"开启内存加强,开启内存加强后,可使用内存会变大,这也是一个固定值,可以查看
    adb shell getprop | findstr dalvik.vm.heapsize
    heapsize
  3. 可以查看更详细的
    adb shell cat /system/build.prop | findstr dalvik.vm
    build.prop

你可能感兴趣的:(android app内存使用限制)