每隔几秒钟就会口吃。如何解决这个问题?

时间:2010-11-10 16:43:48

标签: android garbage-collection performance physics box2d

我一直在密切关注本教程。

http://www.4feets.com/2009/03/2d-physics-on-android-using-box2d/

经过一些问题后,我让它在我的T-mobile G1上工作。

现在我在屏幕上绘制了4-5个物体(球)。我让球在屏幕中间产生并开始下降。

问题:游戏每隔几秒就会断断续续。我检查了Logcat,并认为GC是罪魁祸首。

然而,我见过许多使用box2D的游戏,并产生流畅的游戏玩法(例如,Andengine演示)。

他们是怎么做到的?他们是如何阻止GC加入的?(假设GC确实是罪魁祸首)

欢迎任何意见。

提前谢谢!

2 个答案:

答案 0 :(得分:0)

那么,如果您检查Logcat,那么您在模拟器上运行它,对吗?

在这种情况下,不要相信模拟器。据我所知,它对内存的读/写方式使它成为判断应用程序在实际手机上运行方式的不良基准。

如果它适用于你的G1,那么它很可能也适用于其他手机。

答案 1 :(得分:0)

股票JBox2D在其计算中使用了大量的对象创建。有人正在研究Android NDK Box2D,但是这比开始使用Java库要多得多。我不相信JBox2D的任何(尚未)版本已经解决了您似乎遇到的GC流失问题。我正在尝试一个,但我不知道它将提供多少好处或者它与NDK版本有多接近。

您可能需要查看APE Physics for Android。它支持物理模拟的少得多的方面,但对于某些应用来说可能没什么用。