問題タブ [android-doze]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 「Doze」は実際に何をしますか? また、そのためにアプリのコードを変更する必要がありますか?
バックグラウンド
Android 6 では、デバイスのスリープ中のバッテリーの取り扱いを改善するために、「Doze」と呼ばれる組み込みのメカニズムが導入されました。
問題
問題は、それが実際にどのように機能するのか、また、この新しいメカニズムを処理するためにアプリをどのように変更する必要があるのか 、まったくわからないことです。
明らかに、コードに何が含まれているかによって異なりますが、何を探す必要がありますか?
私が見つけたもの
これについて話している 2 つの Web ページを見つけました。
- https://plus.google.com/+AndroidDevelopers/posts/94jCkmG4jff
- http://developer.android.com/training/monitoring-device-state/doze-standby.html
しかし、彼らは主にアラームについて話します。
アラームのスケジュール設定を支援するために、Android 6.0 (API レベル 23) では、setAndAllowWhileIdle() と setExactAndAllowWhileIdle() という 2 つの新しい AlarmManager メソッドが導入されています。これらの方法を使用すると、デバイスが Doze 状態でも作動するアラームを設定できます。
質問
この新しいメカニズムを処理するために、アプリ開発者は何をすべきでしょうか? そのため、スケジューリング API の動作は異なりますか? に必要な変更はどうですか:
アラーム
バックグラウンド/フォアグラウンド サービス
ウェイクロック
JobScheduler と GcmTaskService
この件で Android 6 以降を処理するために必要な調整はありますか?
android - ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS インテントを適切に起動するにはどうすればよいですか?
ドキュメントに記載されているように:
「REQUEST_IGNORE_BATTERY_OPTIMIZATIONS パーミッションを保持するアプリは、システム ダイアログをトリガーして、ユーザーが設定に移動せずにアプリをホワイトリストに直接追加できるようにすることができます。アプリは ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS インテントを起動して、ダイアログをトリガーします。」
誰かがこのインテントを起動する適切な方法を教えてもらえますか?
android - マシュマロにDozeを強制する方法は?
すべてが次の 2 つのコマンドを指しているようです。
マシュマロの公式リリースを実行している Nexus 6の指示に従いました。電話をテスト マシンに接続します。doze でテストしたい部分をテストするためのアプリをセットアップしました。画面をオフにします。上記を実行した後battery unplug
、出力が得られないので、動作すると思いますが、実行するたびにdeviceidle step
出力は常にStepped to: ACTIVE
.
問題があるかどうかはわかりませんが、テストしようとしているアプリの特定の機能は、電話を Doze から復帰させるために設定しているアラームです。PendingIntent
予定が切れたときにデバイスを居眠り状態にしたいのですがAlarmManager.setAlarmClock
。デバイスが Doze に入るのを防ぐことはできますか?
android - Android DOZE モード GCM プライオリティ
DOZE モードのテストのために、Android 6.0 でサンプル GCM アプリを開発しています。
言われているように、DOZE モードでは、デバイスは通常の優先度の GCM ではウェイクアップしません。これを確認したかったのです。
ドキュメントに従って(https://developers.google.com/cloud-messaging/concept-options#setting-the-priority-of-a-message)
通常の優先度。これは、メッセージ配信のデフォルトの優先度です。通常の優先度のメッセージは、スリープ状態のデバイスでネットワーク接続を開くことはなく、バッテリーを節約するために配信が遅れる場合があります。新しい電子メールの通知や同期するその他のデータなど、時間的制約の少ないメッセージの場合は、通常の配信優先度を選択します。
このリンクからいくつかのサーバー コードを使用してアプリをテストしました。 https://stackoverflow.com/a/22169411/4242382
サーバーから送信するメッセージは次のようなものです。
ご覧のとおり、優先順位が設定されていないため、DOZE モードではすぐにこれを取得するべきではありません。それでも、デバイスは GCM メッセージをすぐに受信します。
試験方法
- GCM ベースのアプリを実行する
- adb シェルからコマンドを発行して DOZE モードを誘導する (リンク)
$ adb shell dumpsys battery unplug $ adb shell dumpsys deviceidle step
- サーバーからメッセージを送信する (phpfiddle)
予想される動作: 通常の優先度の GCM の即時配信はありません 観測された動作: メッセージの即時配信があります
DOZE モードはドキュメントどおりに機能しますか? 私はそれが起こっているのを見ません、誰かが同じに直面していますか?
android - Doze と GCM を使用しない Android (特に中国)
新しい Android M Doze では、アプリを起動する唯一の (ユーザー フレンドリーな) 方法は、GCM からの優先度の高いメッセージを使用することです。しかし、GCM がオプションでない場合はどうでしょうか? 中国の多くの Android デバイスには GCM がありません。たとえ持っていたとしても、グレート ファイアウォールは Google への接続をブロックします。
現在、中国のアプリは、Baidu プッシュのような独自のプッシュ サービスを使用していますが、Doze を使用することで、それらは運命づけられているようです。私が理解しているように、サードパーティのプッシュには問題があります。
それが中国でどうなるかについて誰か考えを持っている人はいますか? または、GCM のない Android を使用しますか? 中国のメーカーは Doze を除外するのでしょうか?
android - Doze モードのタイミングとは何ですか?
Androidのドキュメントによると
画面がオフの状態で、ユーザーがデバイスを一定時間コンセントに接続せずに静止したままにしておくと、デバイスは Doze モードに入ります。
Doze モードが開始する前に、デバイスがアイドル状態で静止している必要がある時間はどれくらいですか?
等々:
定期的に、システムは一時的に Doze を終了し、アプリが延期されたアクティビティを完了できるようにします。このメンテナンス期間中 [...] 時間の経過とともに、システムはメンテナンス期間をスケジュールする頻度を減らします...
では、メンテナンス ウィンドウの間隔とその増加率はどのくらいでしょうか?