就像标题所说,我是否应该围绕16 MB的堆大小限制设计我的应用程序?我问的原因是我最近开发的游戏在我近2岁的Droid 2上运行良好.但是当我使用16 MB堆大小限制的AVD测试我的应用程序时,我出现了内存错误.使用DDMS监视我的应用程序显示为我的游戏分配的总内存大约为20 MB.这不是一个巨大的差异,但让我的游戏在16 MB的限制下工作会真的伤害视觉效果.
现在,如果这是2008年,我甚至不会问这个问题.但它是2012年,即G1首次亮相后近4年.可以肯定地说,过去一年制造的大多数手机都允许应用程序分配超过16 MB的内存吗?或者我真的因为没有设计我的16 MB MB限制应用程序而搞砸了自己?
解决方法
堆限制取决于设备分辨率(可能还有其他因素).因此在高分辨率设备上,堆限制可能是30MB,而在低分辨率G1上则是16MB.通常,您应该相应地更改图形,因此低分辨率设备使用低分辨率图形(占用较少的空间),而高分辨率设备使用高分辨率图形(占用更多空间).