android 应用 heap size分配

来源:互联网 发布:唐诗 知乎 编辑:程序博客网 时间:2024/06/16 12:53

 

 

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,即程序运行过程中实际最大智能使用16MB内存,不过有一个办法可以解决,编辑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参数传入。

原创粉丝点击