Android堆大小限制,我们是否真的需要设计具有16 MB限制的应用程序?

phi*_*917 6 memory android memory-management

就像标题所说,我是否应该围绕16 MB的堆大小限制设计我的应用程序?我问的原因是我最近开发的游戏在我近2岁的Droid 2上运行良好.但是当我使用16 MB堆大小限制的AVD测试我的应用程序时,我出现了内存错误.使用DDMS监视我的应用程序显示为我的游戏分配的总内存大约为20 MB.这不是一个巨大的差异,但让我的游戏在16 MB的限制下工作会真的伤害视觉效果.

现在,如果这是2008年,我甚至不会问这个问题.但它是2012年,即G1首次亮相后近4年.可以肯定地说,过去一年制造的大多数手机都允许应用程序分配超过16 MB的内存吗?或者我真的因为没有设计我的16 MB MB限制应用程序而搞砸了自己?

Mar*_*jøl 6

堆限制取决于设备分辨率(可能还有其他因素).因此在高分辨率设备上,堆限制可能是30MB,而在低分辨率G1上则是16MB.通常,您应该相应地更改图形,因此低分辨率设备使用低分辨率图形(占用较少的空间),而高分辨率设备使用高分辨率图形(占用更多空间).

  • 谢谢你,你的帖子让我意识到为什么我首先在​​模拟器中的应用程序崩溃了.我用大屏幕分辨率设置了AVD但没有相应地增加堆大小.当我返回并将屏幕分辨率更改为与原始G1类似的内容时,我的游戏运行完美,但没有超过16 MB的堆大小限制. (3认同)