Android OpenGLES - 在大分辨率下在Moto Droid上调用OnDrawFrame之间的延迟

时间:2011-02-21 11:23:53

标签: android opengl-es

我们目前正在使用opengles开发Android游戏。我们现在正试图支持不同的分辨率,但是,当允许大分辨率时,我们正在测试的moto droid似乎落后于它的原始分辨率(800x400)。我们将帧锁定为30 fps,当我们检查时,我们的游戏只需要大约15-20毫秒就可以更新并在机器人上绘图,但是,在调用ondrawframe之间有时会有30-60毫秒的时间。我的Galaxy S设备没有这个问题,当我们把分辨率放在摩托罗拉机器人上时,它看起来非常好。

我们已经调查了这个问题,并且已经找到了人们看似完全相同的问题,但没有人可以提供解决方案。市场上似乎使用opengles的其他游戏在moto机器人上运行良好。

我们缺少什么?我们需要打电话或做什么?似乎没有理由在对ondrawframe的调用之间有30-60毫秒的时间,特别是当原始分辨率(800x400)没有跳跃和界限大于默认值533x320时,或者它是什么意思到它当不允许大屏幕时,因为缓冲交换它似乎是荒谬的。即使没有任何东西被吸引到屏幕上,也会发生滞后,所以这不是因为我们画的太多了。

如何解决这个问题的任何启示或帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

您必须提供更多信息。如果它不是因为绘图,那么它应该是因为任何计算或对象分配代码。在游戏过程中经常分配对象,调用GC,这对游戏不利。

有关Android游戏性能和分配内存的事情,请参阅以下链接。

我建议您观看由Google Android Group完成的这两个视频。

http://www.youtube.com/watch?v=U4Bk5rmIpic&feature=player_embedded

http://www.youtube.com/watch?v=7-62tRHLcHk&feature=player_embedded

希望有助于优化。