LoginSignup
7
5

More than 5 years have passed since last update.

Androidの省電力機能

Last updated at Posted at 2017-01-27
1 / 16

HW的なspecではなく、アプリの動作を制限するタイプの、Androidの省電力機能について。


Androidスマホの省電力機能は、大きく分けて2つ

  1. low-battery時の緊急用
  2. 常時動くもの

low-battery用

  • メーカ独自のもの
  • 二段階あったりする
    • 閾値(15%など)を切った時に発動
      • アプリのBG通信、バイブレーション、描画速度、GSP等を制限
    • 数%時/災害時の待ち受け
      • 使えるアプリが限定的
      • 待ち受け(ホーム画面)自体が変わる

常時動くもの

  • スリープする
    • Screen Offする、WiFiを切る、CPUが眠るなど
    • wake lock により誰でも起こすことが出来る
  • メーカ独自のものも、あった
    • アプリを選択してBG通信を制限するなど
  • Android M (6.0) から、2つの新機能を搭載
    • 使っていないアプリを動作させない (App Standby)
    • 使っていない時に動作させない (Doze)

App Standby

  • ユーザが使っていない
  • 他アプリも使っていない
  • 通知を出していない

いずれかに該当すれば、BGでのnetwork accessができなくなる。


Doze

  • 画面消灯、バッテリー駆動で、端末を動かさないと、一定時間でIDLE状態
  • App Standbyと違い、network accessだけでなく動作自体が制限される

Doze (Android M)

android doze

stationary とは?


Significant Motion Sensor

  • ユーザの動きを検出する、ワンショットのセンサー
  • 加速度センサーを使用
    • or another as long as low power
  • repeatedly でない false negative を許容
    • 実際は動いているけど検知しないのは OK
    • 実際に動いていないのに検知するのは NG
      • 省電力繋がらない

Significant Motion Sensor

  • triggerとなる例
    • ウォーキング、サイクリング
    • 自動車や列車に乗っている
  • triggerとならない例
    • ポケットに中に入れていて、人は動いていない
    • テーブルに置いてあって、テーブルが道路や洗濯機の振動で少し揺れる

DozeでのSensorの使われ方

android doze

Androidのソースコード より解析。
画像は Android MのDozeにおける状態遷移 より。


IDLE中の動作制限

  • network access
    • 全て不可
  • alarm による起床
    • alarm clock(目覚まし時計など)は動く
      • すぐに ACTIVE 状態に戻る
    • それ以外は無視
  • wake lock
    • 全て無視
  • Could Messaging (GCM/FCM) 受信
    • high-priorityでないメッセージは受信できない
  • GPSとWiFiのスキャン
    • 動作しない

whitelist

ユーザによる設定で、アプリを動作制限の対象外リストに入れることが出来る

  • network access が可能となる
  • CPUのみを起こすwake lockが可能となる

注: Google Play ポリシーでは、アプリの主要機能が悪影響を受けない限り、アプリを直接的に Android 6.0 以降の電力管理機能(Doze とアプリ スタンバイ)の対象外とするよう要求することを禁止しています。


Android N (7.0) で更に改善

IDLEを2段階(LightとDeep)に分け、段階的に制限をかける

  • まずは network access と Sync/Job を制限
  • つぎに alarm や wake lock などを制限

Light IDLE へは、端末が静止していなくても突入する


Doze (Android N)

android doze


資料

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5