2016-07-28 16 views
0

コンテキストを提供する:Androidアプリでのベストプラクティスのエネルギー消費量を測定しようとしています。 WakeLockを使用して画面をオンにしているアプリをリファクタリングしましたが、代わりにフラグFLAG_KEEP_SCREEN_ONを使用しています。 驚いたことに、私はエネルギー消費量についてはほんのわずかしか改善できません。デバイスが電源に接続されているとき、AndroidはWakeLockの動作が異なりますか?

私は、CPUが低消費電力状態になることを期待していました。消費電力が少なくて済みます。

これらの条件では、CPU電源管理の動作が異なりますか、またはこのFLAGの使用には妥当な影響はないと思われますか?

電源に接続する必要があるODROID-XUデバイスで測定しています。 Androidのバージョンは4.2.2です - APIレベル17

+0

afaikアクティビティの 'FLAG_KEEP_SCREEN_ON'フラグの唯一の利点は、あなたにwakelockパーミッションが必要ないということです。ここで – Dodge

+0

ドキュメントに関連する注記:[SCREEN_BRIGHT_WAKE_LOCK(https://developer.android.com/reference/android/os/PowerManager.html#SCREEN_BRIGHT_WAKE_LOCK)および[SCREEN_DIM_WAKE_LOCK(https://developer.android.com/参照/アンドロイド/ os/PowerManager.html#SCREEN_DIM_WAKE_LOCK) – Dodge

+1

:画面がオンになるとすぐに、CPUはオンになっています。だから、より少ないエネルギーを費やすのを助けるのではなく、起床ロックの許可を避けるだけです – Dodge

答えて

0

これに関するいくつかの調査を行い、この質問の前のコメントに基づいて、私は明らかにわかりました。

次の記事がWakeLockが、それはもはや必要であるとき、それが適切に解放されていないことを確認するために使用する方法について説明します。 http://vliux.me/android/android-power-consumption-and-wakelock/

著者はWakelockの利用が容易な作業ではないことを説明してバッテリを放電させる可能性のあるエラーが発生しやすくなります。 フラグFLAG_KEEP_SCREEN_ONを使用すると、システム(WindowManager)がロックを処理します。 したがって、Wakelockが適切にリリースされることを確認します。また

、特別な許可を必要としないFLAG_KEEP_SCREEN_ONフラグを使用して、@Dodgeにより述べたように。

これは、次の回答でもサポートされています。https://stackoverflow.com/a/4376967/1228682

注:FLAG_KEEP_SCREEN_ONの使用を示唆する間違ったウェイクロックの使用について、糸くずチェックがあります。lint docs:http://tools.android.com/tips/lint-checksで "Wakelock"を検索してください。

0

あなたは大きな違いを見つけられませんでした理由

WakeLockは、デバイスの画面がオフになっているとき、あなたのFLAG_KEEP_SCREEN_ONを使用しているときながら、スリープ状態になるからデバイスを防ぐことですディスプレイはまた、アプリと一緒に電源を使用している、と私はそれが妥当な量の電力がかかると信じています。

結果はほぼ同じになりますが、FLAG_KEEP_SCREEN_ONを使用するとUXが悪化する可能性があります。

関連する問題