我在一家小型Android游戏开发公司工作,目前我遇到了一个问题.我正在使用Eclipse和Android SDK运行一个非常标准的Windows 7 x64机器.
我正在阅读我的程序的LogCat输出,想知道为什么我的游戏甚至都不会出现.我很快看到所有的堆都在增长,并且认为我可能有太多的纹理/太大的纹理等等.我确定了纹理加载的问题,然后我开始使用DDMS并注意到我的堆不会超过19MB.我剪了几个纹理,试图再次构建和运行.令我震惊的是,堆不会一直超过6.6MB.有没有人有什么建议?
tl; dr:我的堆增长到19MB然后失败了,所以我拿出了内存更昂贵的纹理,使其在堆中保持在19MB以下,现在我的堆不会超过6.6MB.
编辑:当取出更大的纹理时logcat输出:
08-19 19:19:53.744: DEBUG/dalvikvm(4699): GC_FOR_MALLOC freed 91 objects / 514016 bytes in 49ms
08-19 19:19:54.184: DEBUG/dalvikvm(4699): GC_FOR_MALLOC freed 104 objects / 494088 bytes in 48ms
08-19 19:19:54.404: WARN/ActivityManager(59): Launch timeout has expired, giving up wake lock!
08-19 19:19:54.764: DEBUG/dalvikvm(4699): GC_FOR_MALLOC freed 85 objects / 384664 bytes in 49ms
08-19 19:19:54.935: WARN/ActivityManager(59): Activity idle timeout for HistoryRecord{4612eec8 com.wickeyware.zombiearcher.android/.AndroidGame}
08-19 19:19:55.234: DEBUG/dalvikvm(4699): GC_FOR_MALLOC freed 104 objects / 504648 bytes in 47ms
08-19 19:19:55.875: DEBUG/dalvikvm(4699): GC_FOR_MALLOC …