现在真实测试结果:
1,为了搞清楚每个应用程序在Android系统中最多可分配多少内存空间,我们使用了真机进行测试,测试机型为魅族MX4 Pro,3G内存。
测试方法是直接申请一块较大的内存空间,看应用程序在最多申请多大的内存空间时会崩溃。
结果:(1)未设定属性android:largeheap = "true"时,可以申请到的最大内存空间为221M。
(2)设定属性android:largeheap = "true"时, 可以申请的最大内存空间为478M,是原来的两倍多一些。
网上有网友提出可申请到的最大内存空间与手机配置有关,以后会加以验证。
2.实测,不准确, 准确的说话是 google原生OS的默认值是16M,但是各个厂家的OS会对这个值进行修改。
比如本人小米2S为例,这个值应该是96M。
Runtime rt=Runtime.getRuntime();
long maxMemory=rt.maxMemory();
log.i("maxMemory:",Long.toString(maxMemory/(1024*1024)));
這個可以直接得到app可使用的最大memory size算出來是MB, 获得的是heapgrowthlimit
先看机器的内存限制,在/system/build.prop文件中:
heapgrowthlimit就是一个普通应用的内存限制,用ActivityManager.getLargeMemoryClass()获得的值就是这个。
而heapsize是在manifest中设置了large