最近在查看android studio的monitor发现了一个十分有趣的现象,就是android monitor中内存的大小是随着程序的运行一直在不断增加的:

94d382fe9840bdced3e2b53f6a3ebd29.png

可以看到在memory monitor中存在着free memory和alloc momory,随着程序的不断跳转执行,其大小在不断的增加,那么一个apk程序的内存大小限制是怎样的呢?

这里我选取了两款手机红米note2和moto x手机,并分别在其中执行

Runtime.getRuntime.maxMemory()

Runtime.getRuntime.totalMemory()

Runtime.getRuntime.freeMemory()

moto x手机:

程序A:

totalMemory:63043244byte  即60M

maxMemory:536870912byte  即512M

freeMemory:5636240byte  即5.3M

程序B

totalMemory:28127332byte   即26M

maxMemory:201326592byte  即192M

freeMemory:10417532byte     即10M

red MI手机:

程序A

totalMemory:62739114byte   即60M

maxMemory:268435456byte  即256M

freeMemory:5805424byte       即5.5M

程序B

totalmemory:30193786byte    即29M

maxMemory:134217728byte  即127M

freeMemory:11297114byte     即10.7M

总结:

可以看到的是不同的程序在不同的手机中macMemory的值是不一致的,而totalmemory和freememory的值随着程序的执行在动态的变化。

totalmemory:当前JVM进程已经申请到的内存大小

freeMemory:当前JVM进程已经申请到的内存大小中空闲状态的大小

maxMemory:当前JVM进程可以申请到的总得内存大小

不同的应用程序无论重新安装与否,在同一手机上其macMemory方法的值都是固定的

参考: http://blog.csdn.net/wgw335363240/article/details/8878644

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐