雑記帳 [Android]Androidのパワーマネージメント
FC2ブログ

2010'11.17 (Wed)

[Android]Androidのパワーマネージメント


ここ
とか、こことか、こんなとこを見ながら、AndroidのPower Managementについて整理してみる。

#あくまで個人の覚書。間違ってたらコメントください。。。

まずはAPIレベルの話から。developer.android.com/reference/android/os/PowerManager.htmlのまとめ。

関連するクラスはandroid.os.PowerManagerとandroid.os.PowerManager.WakeLockとなる。
まずPowerManagerクラスの概要など。

PowerManagerクラスはデバイスのパワーステートを制御することができる。
wakelockは本当に必要な際にのみ取得し、可能な限り最低限のレベルのものを使い、使い終わったら即刻リリースすること。
もっとも基本的なAPIはnewWakeLock()である。このAPIはandroid.os.Powermanger.WakeLockオブジェクトを生成する。これを使用してデバイスのパワーステート制御を行う。

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
 PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
 wl
.acquire();
   
..screen will stay on during this section..
 wl
.release();


設定できるフラグは以下のとおりとなる。この値指定は排他となり、このうちの一つしか設定できない。
Flag Value CPUScreenKeyboard
PARTIAL_WAKE_LOCKOnOffOff
SCREEN_DIM_WAKE_LOCKOnDimOff
SCREEN_BRIGHT_WAKE_LOCKOnBrightOff
FULL_WAKE_LOCKOnBrightOff


加えて、以下の二つのフラグが指定できる。ただし、PARTIAL_WAKE_LOCKと組み合わせた場合は無効となる。
  • ACQUIRE_CAUSES_WAKEUP
このフラグがセットされた場合、WakeLockが取得された際にすぐに画面とキーボードをONする。一般的な使い方としては、ユーザーにとって重要な情報をすぐに見せるような場合があげられる。
  • ON_AFTER_RELEASE
 このフラグがセットされた場合、イルミネーションをほんの少しだけ残す要因となるUser Activity TimerはWakeLockが開放された場合にリセットされる。wakelockの状態を繰り返す場合に、フリッカを低下させるのに使用できる。


APIとしては以下のものがある。
 goToSleep() --- スリープモードに入る
isScreenon() --- 画面の表示状態を返す 
newWakeLock()  --- WakeLockオブジェクトを生成する
reboot()  -- デバイスの再起動を行う
userActivity() --- デバイスをFULL_ON状態に遷移させ、Auto-Offタイマーをリセットする。

ユーザーアプリが何かする場合には基本WakeLockオブジェクトで操作する、って事でいいのかな?


テーマ : android - ジャンル : コンピュータ

22:53  |  Android  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

Comment

コメントを投稿する


 管理者だけに表示  (非公開コメント投稿可能)

▲TOP

Trackback

この記事のトラックバックURL

→http://kobayuta.blog47.fc2.com/tb.php/245-d624c55f

この記事にトラックバックする(FC2ブログユーザー)

この記事へのトラックバック

▲TOP

 | HOME |