android 应用 heap size分配!!!

android不同设备单个进程可用内存是不一样的,可以查看/system/build.prop文件。

 

# This is a high density device with more memory, so larger vm heaps for it.
dalvik.vm.heapsize=24m

上面heapsize参数表示单个进程可用的最大内存,单如果存在如下参数:

dalvik.vm.heapgrowthlimit=16m

largeheaplimit参数表示单个进程内存被限定在16m,即程序运行过程中实际只能使用16m内存,不过有一个办法可以解决,编辑AndroidManifest.xml中的Application节点,增加属性largeheap="true"参数.

 

这个参数的使用是在:

frameworks\base\core\jni\AndroidRuntime.cpp中的 startVM函数中,语句如下:

 

    property_get("dalvik.vm.heapsize", heapsizeOptsBuf+4, "64m");
    LOGI("Heap size: %s", heapsizeOptsBuf);

    opt.optionString = heapsizeOptsBuf;
    mOptions.add(opt);

之后mOptions会作为启动VM参数传入。

你可能感兴趣的:(android 应用 heap size分配!!!)