2012-02-09 93 views
8

我正在为Android制作2D游戏,而我最近一直在寻找优化。电池使用情况,期待什么?

我在“设置”中查看了电池使用情况,发现在一小时内将我的游戏放在前台(屏幕开启)一小时后,我耗尽了电池的11%(Motorola Xoom Honeycomb)。

这是用户应该从手机/平板电脑上的游戏期望的东西吗?

信息的位:

  • 我的游戏使用OpenGL-ES渲染(渲染连续)

  • 逻辑在运行性能一个单独的线程。 。

  • 我用getWindow()addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);认为这是必要的,因为游戏需要来自用户的思考时间。

  • 简单颗粒

那么,是那种电池消耗的正常游戏?

我可以采取哪些措施来降低电池消耗?

+0

如果你可以在你的各个线程中安排小的'Thread.wait(timeout)',它将消除CPU上的税,因此对电池更好。即如果您最近更新了屏幕,则可以实际等待至少20ms(50Hz),然后再次更新。 – 2012-02-09 20:05:55

+0

@BicycleDude这是一个好主意。在游戏的某些部分,它仍然需要30fps,但这听起来不错。 – Jack 2012-02-09 20:09:01

+0

@BicycleDude是Thread.sleep一个类似的东西? – Jack 2012-02-09 20:10:13

回答

0

让屏幕保持独立(没有游戏运行)将会产生类似的电池使用情况。

我给你的建议是将游戏中的暂停或用户在X时间内没有触及屏幕时的屏幕设置为暗淡,而不是以全亮状态将屏幕保持亮起。

您可以通过调节screenBrightness/buttonBrightness为此,

这些字段的取值范围为0〜> 1

可以看到设置的背景下,这个here

+0

但屏幕的电池使用情况并未在图表中显示它自己的部分? (根据我的统计,它使用了43%的电池) – Jack 2012-02-09 20:28:27

+0

是的!它的确如此。这仍然会影响电池的总使用量。除此之外,以及BicycleDude的建议,我会建议阅读本文:http://developer.android.com/training/monitoring-device-state/index.html – 2012-02-09 20:50:48

+0

有一点要注意的是,调光屏幕doesn如果用户的亮度设置为“自动”(我从来没有设法让它工作,但目前不是优先事项) – Basic 2012-02-16 19:37:46

0

贾斯汀的回答是好,但不要忘记一些老派的基础知识。

让程序忙碌等待会消耗电池。您必须使用CPU来推进游戏,但无需等待。一定要让你的程序在估计的时间内休眠,直到下一次游戏处理周期的迭代。

相关问题