Quantcast
Channel: Google Developers Japan
Viewing all articles
Browse latest Browse all 2209

Google Cloud Messaging は Android 6.0 Marshmallow の Doze モードをどう扱うか

$
0
0

[この記事は Laurence Moroney、デベロッパー アドボケートによる Android Developers Blog の記事 "How Google Cloud Messaging handles Doze in Android 6.0 Marshmallow" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

Android 6.0 Marshmallow には「Doze (居眠り)」と呼ばれる 節電機能が新たに導入されています。ユーザーがデバイスのプラグを抜いて、スクリーンをオフにしてしばらくの間動かさずに放置していると、Doze モードが開始されます。すると、節電のため、システムがアプリケーションのアクティビティを保留します。アプリの同期やほかの保留動作を実行するため、一定間隔で一時的に通常の操作を再開します。この動作は idle maintenance (メンテナンス待ち) ウィンドウと呼ばれています。

アプリで Google Cloud Messaging (GCM) が使用されている場合、Doze モード中のデバイスに対する以下の動作を考慮する必要があります。

GCM には、2 つの優先度「高」と「標準」があります。「高」を使用している場合、GCM はすぐにメッセージを届けようとし、必要に応じて Doze モードからデバイスを起こします。Android Marshmallow でも、この点は同じです。

ただし、「標準 (デフォルト)」が使用されている場合、Doze モードでは以下のようなさまざまな動作が発生します。

  • 最も重要な変更は、Doze モードのデバイスにメッセージがバッチ処理されることです。メンテナンス待ちウィンドウの状態になると、メッセージを一括受信します。
  • Doze モード中は time to liveの期限切れのメッセージ (TTL=0 を含む) は、破棄されます。

どうしても必要でない限り、バッテリーへの影響を考慮し優先度は「標準」にしておくことを推奨しています。同期は、上述のとおり Doze モード中、そして当然ながら Doze 終了時に実行されます。

優先度「高」は、チャット アプリの通知や電話の着信など、エンド ユーザーに対して即時に通知を生成する必要があるアプリケーションでのみ使用すべきです。

GCM メッセージングの優先度に関する詳細は、Google デベロッパーサイトをご覧ください。

Posted by Eiji Kitamura - Developer Relations Team

Viewing all articles
Browse latest Browse all 2209

Latest Images

Trending Articles