2012-02-09 7 views
8

私はAndroid向けの2Dゲームを作っていますが、最近は最適化を検討しています。バッテリーの使用、何を期待していますか?

設定でバッテリーを調べたところ、ゲームをフォアグラウンド(画面をオンにしたまま)から1時間以上放置した後、バッテリ(モトローラXoomハニカム)の11%が消耗していました。

これは、ユーザーが携帯電話/タブレットのゲームから期待するべきものですか?

情報のビット:私のゲームは、レンダリングのためのOpenGL-ESを使用しています

  • (連続レンダリング)

  • ロジックは、パフォーマンスのために別のスレッドで実行されます。

  • 私はgetWindow()を使用しました。addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);ゲームがユーザーから少しの思考時間を必要とするため、必要であると考えました。

  • シンプル粒子だから、

は、ゲームのための通常のバッテリー消費のようなものでしょうか?

バッテリーの消費を減らすためにどのような手順を取ることができますか?

+0

さまざまなスレッドで小さな 'Thread.wait(timeout)'をスケジュールできれば、CPUに対する税金がなくなり、バッテリーの方が良いでしょう。つまり、最近画面を更新した場合は、もう一度更新する前に、実際には少なくとも20ms(50Hz)待つことができます。 –

+0

@BicycleDude thats良いアイデアです。それはまだゲームプレイの特定の部分の間に良い30fpsを必要とするだろうが、それは良いと思う。 – Jack

+0

@BicycleDudeはThread.sleepと同様のことですか? – Jack

答えて

0

(ゲームを実行しないで)画面を単独で放置すると、同様のバッテリが使用されます。

あなたのアドバイスは、ゲームに一時停止がある場合、またはフル輝度で放置するのと反対のX時間で画面に触れていない場合に、Dimを設定することです。

あなたは、screenBrightness/buttonBrightnessを調整することにより、

これを行うことができ、これらのフィールドの範囲は0-> 1

であるあなたは、このhere

+0

しかし、画面のバッテリー使用量は、グラフに独自のセクションを取得していませんか? (私の統計によると、バッテリーの43%が使用されました) – Jack

+0

はい!します。これは依然として総バッテリ使用量に寄与する。これ以外とBicycleDudeが提案したもの以外には、私はこの記事を読むことをお勧めします:http://developer.android.com/training/monitoring-device-state/index.html –

+0

注意すべき点の1つは、ユーザーが明るさを「自動」に設定していれば、まったくうまくいきません(私はこれまでのところ優先順位はあまり高くありませんが、 – Basic

0

ジャスティンの答えは良いですが設定のコンテキストを見ることができ、古い学校の基本を忘れないでください。

プログラムがビジー状態になると、バッテリーも消耗します。ゲームを進めるにはCPUを使用する必要がありますが、ビジー状態を待たせる必要はありません。ゲームの処理サイクルの次の反復までの予想時間の間、プロセスをスリープ状態にするようにしてください。

関連する問題