Heapsize配置
来自个人维基
PRODUCT_PROPERTY_OVERRIDES += \ ????dalvik.vm.heapstartsize=5m \ ????dalvik.vm.heapgrowthlimit=48m \ ????dalvik.vm.heapsize=128m \ ????dalvik.vm.heaptargetutilization=0.75 \ ????dalvik.vm.heapminfree=512k \ ????dalvik.vm.heapmaxfree=2m
[dalvik.vm.heapgrowthlimit]: [64m] --- 这个值表明一个应用java层的heapsize 限制是64MB,即超过这个大小就会报outofmemory异常
[dalvik.vm.heapsize]: [128m] --- 如果这个应用具有largeheap属性,需要更大的heapsize,如launcher,就会给他更大的可分配空间,这里是128M.
如果没有理解错误的话,S7T 启动一个APP时需要分配 128M的内存,对于一个只有512M RAM的手机而言,杀死进程的需求就非常正常了。
--- 一个APP启动时,虚拟机会默认给它分配一个很小的堆空间,如8MB,当后面需要的大小超过这个值,就会翻倍,如8MB -> 16MB,一直到64MB封顶。
内存升为1G RAM,就对heapsize和heapgrowthlimit的大小升一倍的方式,是否合理?
--- 内存增加一倍,相应可分配的空间也增加一倍,这个是合理的。
另外,我不知道我们设定的这个值dalvik.vm.heapstartsize 是多少?
--- dalvik.vm.heapstartsize 这个值就是上面提到的启动时默认分配的初始大小,如果没有配置的话默认是8MB(2.3以前好像是4MB)