【问题标题】:Stutter every few seconds. How to fix this?每隔几秒就结结巴巴。如何解决这个问题?
【发布时间】:2010-11-10 16:43:48
【问题描述】:

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

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

在遇到一些问题后,我让它在我的 T-mobile G1 上运行。

现在我在屏幕上绘制了 4-5 个对象(球)。我让球在屏幕中间生成并开始下落。

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

但是,我见过许多使用 box2D 的游戏并制作出流畅的游戏玩法(例如,Andengine 演示)。

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

欢迎提出任何意见。

提前谢谢你!

【问题讨论】:

    标签: android garbage-collection performance physics box2d


    【解决方案1】:

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

    在这种情况下不要相信模拟器。据我了解,它读取/写入内存的方式使其成为判断应用程序如何在实际手机上运行的糟糕基准。

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

    【讨论】:

    • 嗨。谢谢你的回复。但是我没有使用模拟器。我使用带有 USB 数据线的 G1。这样你就可以看到来自 G1 的 Logcat。
    • 那么,在没有连接 PC 的情况下运行它会发生什么?
    【解决方案2】:

    Stock JBox2D 在其计算中使用了大量的对象创建。有人在 Android NDK Box2D 上工作,但这比仅仅使用 Java 库要多一些工作。我不相信有任何(尚未)版本的 JBox2D 可以解决您似乎遇到的 GC 流失问题。我正在尝试一个,但我不知道它会提供多少好处,也不知道它与 NDK 版本有多接近。

    您可能想查看APE Physics for Android。它支持的物理模拟方面要少得多,但这对于某些应用程序来说可能没问题。

    【讨论】:

      猜你喜欢
      • 2018-09-11
      • 1970-01-01
      • 2016-08-21
      • 2019-08-28
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多