Manajemen Daya Platform

Untuk meningkatkan masa pakai baterai perangkat, Android dapat memengaruhi status perangkat dengan memantau penggunaan dan bangun perangkat. Platform dapat memasuki kondisi tidur untuk menjeda aktivitas agar tidak berjalan saat perangkat tidak digunakan.

Mengantuk

Istirahatkan memperpanjang masa pakai baterai dengan menunda CPU latar belakang aplikasi dan aktivitas jaringan saat perangkat tidak digunakan dalam waktu lama.

Perangkat menganggur di Istirahatkan secara berkala memasuki jendela pemeliharaan, selama aplikasi dapat menyelesaikan pekerjaan yang tertunda (sinkronisasi, pekerjaan, dll.). Istirahatkan kemudian melanjutkan tidur untuk jangka waktu yang lebih lama, diikuti oleh periode pemeliharaan lainnya. Platform melanjutkan urutan tidur/pemeliharaan Istirahatkan, menambah lama waktu idle setiap kali, hingga waktu tidur maksimum beberapa jam tercapai. Setiap saat, perangkat dalam mode Istirahatkan tetap waspada terhadap gerakan dan segera meninggalkan mode Istirahatkan jika gerakan terdeteksi.

Android 7.0 dan yang lebih tinggi memperluas Istirahatkan untuk memicu serangkaian pengoptimalan yang lebih ringan setiap kali pengguna mematikan layar perangkat, bahkan saat pengguna terus bergerak, memungkinkan masa pakai baterai yang lebih lama.

Layanan sistem penting umumnya disiapkan oleh produsen perangkat untuk dikecualikan dari Istirahatkan. Pengguna juga dapat mengecualikan aplikasi tertentu dari Istirahatkan menggunakan menu Pengaturan. Namun, mengecualikan aplikasi dapat menyebabkan baterai perangkat terkuras. Secara default, Istirahatkan dinonaktifkan di AOSP; untuk detail tentang mengaktifkan Istirahatkan, lihat Mengintegrasikan Istirahatkan .

Persyaratan istirahat

Dukungan Istirahatkan mengharuskan perangkat memiliki layanan perpesanan cloud, seperti Firebase Cloud Messaging (FCM) . Peristiwa pemicu eksternal, seperti pesan cloud, dapat membangunkan aplikasi untuk sementara waktu untuk melakukan pekerjaan saat perangkat tetap dalam mode Istirahatkan.

Dukungan Istirahatkan Penuh juga memerlukan detektor gerakan signifikan (SMD) pada perangkat; namun, mode Doze ringan di Android 7.0 dan lebih tinggi tidak memerlukan SMD. Jika Istirahatkan diaktifkan pada perangkat yang:

  • Memiliki SMD, pengoptimalan Istirahatkan penuh terjadi (termasuk pengoptimalan ringan).
  • Tidak memiliki SMD, hanya pengoptimalan Doze ringan yang terjadi.

Siklus hidup tertidur

Istirahatkan dimulai ketika platform mendeteksi bahwa perangkat tidak digunakan dan berakhir ketika satu atau beberapa aktivitas kriteria keluar terjadi.

Deteksi

Platform mendeteksi bahwa perangkat tidak digunakan saat:

  • Perangkat stasioner (menggunakan SMD).
  • Layar perangkat mati untuk beberapa waktu.

Mode Istirahatkan tidak aktif saat perangkat bertenaga baterai dicolokkan ke pengisi daya.

Selama Tidur

Platform mencoba untuk menjaga sistem dalam keadaan tidur, secara berkala melanjutkan operasi normal selama jendela pemeliharaan, kemudian mengembalikan perangkat ke mode tidur untuk periode berulang yang lebih lama. Selama tidur, pembatasan berikut aktif:

  • Aplikasi tidak diizinkan mengakses jaringan.
  • Penguncian aplikasi diabaikan.
  • Alarm ditangguhkan. Tidak termasuk alarm jam alarm dan alarm yang disetel menggunakan setAndAllowWhileIdle() (dibatasi hingga 1 per 15 menit per aplikasi saat dalam mode Istirahatkan). Pengecualian ini ditujukan untuk aplikasi (seperti Kalender) yang harus menampilkan pemberitahuan pengingat acara.
  • Pemindaian Wi-Fi tidak dilakukan.
  • SyncAdapter dan tugas JobScheduler ditangguhkan hingga periode pemeliharaan berikutnya.
  • Aplikasi yang menerima pesan SMS dan MMS dimasukkan ke daftar putih sementara sehingga mereka dapat menyelesaikan pemrosesannya.

KELUAR

Platform keluar dari perangkat dari Istirahatkan saat mendeteksi:

  • Interaksi pengguna dengan perangkat
  • Pergerakan perangkat
  • Layar perangkat menyala
  • Alarm Segera Alarm jam

Notifikasi tidak menyebabkan perangkat keluar dari Istirahatkan.

Android 7.0 dan yang lebih tinggi memperluas Istirahatkan dengan mengaktifkan mode tidur ringan selama layar mati, sebelum perangkat menganggur.

Gambar 1. Mode Istirahatkan untuk perangkat nonstasioner dan stasioner
Tindakan Mengantuk Istirahat Ringan
Pemicu Layar mati, dengan baterai, stasioner Layar mati, dengan baterai (dicabut)
Waktu Berturut-turut meningkatkan periode dengan pemeliharaan Periode N-menit berulang dengan periode pemeliharaan
Pembatasan Tidak ada akses jaringan, penguncian layar saat aktif, atau pemindaian GPS/Wi-Fi; alarm dan pekerjaan/sinkronisasi ditangguhkan Tidak ada akses jaringan; pekerjaan/sinkronisasi ditangguhkan kecuali selama periode pemeliharaan
Perilaku Hanya pesan pemberitahuan push prioritas tinggi yang diterima Semua pesan waktu nyata (pesan instan, panggilan, dll.) diterima; pesan pemberitahuan push prioritas tinggi memungkinkan akses jaringan sementara
KELUAR Gerak, layar aktif, atau alarm jam alarm Layar aktif

Interaksi dengan Aplikasi Siaga

  • Waktu yang dihabiskan di Istirahatkan tidak diperhitungkan dalam Aplikasi Siaga.
  • Saat perangkat dalam mode Istirahatkan, aplikasi yang tidak aktif diizinkan untuk melakukan operasi normal setidaknya sekali sehari.

Mengintegrasikan Istirahat

Saat Istirahatkan diaktifkan, perangkat yang mendukung SENSOR_TYPE_SIGNIFICANT_MOTION melakukan pengoptimalan Istirahatkan penuh (termasuk pengoptimalan ringan); perangkat tanpa SMD hanya melakukan pengoptimalan Istirahatkan yang ringan. Android secara otomatis memilih pengoptimalan Istirahatkan yang sesuai dan konfigurasi vendor tidak diperlukan.

Untuk mengaktifkan Istirahatkan untuk perangkat:

  1. Konfirmasikan bahwa perangkat memiliki layanan perpesanan cloud yang diinstal.
  2. Dalam overlay perangkat config file overlay/frameworks/base/core/res/res/values/config.xml , setel config_enableAutoPowerModes ke true :
    <bool name="config_enableAutoPowerModes">true</bool>
    
    Di AOSP, parameter ini disetel ke false (Doze dinonaktifkan) secara default.
  3. Konfirmasikan bahwa aplikasi dan layanan yang dimuat sebelumnya:
  4. Konfirmasikan bahwa layanan yang diperlukan dikecualikan dari Istirahatkan.

Tips

Menguji dan mengoptimalkan aplikasi

Uji semua aplikasi (terutama aplikasi yang dimuat sebelumnya) dalam mode Istirahatkan. Untuk detailnya, lihat Menguji dengan Istirahatkan dan Aplikasi Siaga .