Pengelolaan daya platform dengan Istirahatkan

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

Tentang Mode Istirahatkan

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

Perangkat yang tidak ada aktivitas di mode Istirahat secara berkala memasuki periode pemeliharaan, selama periode tersebut aplikasi dapat menyelesaikan pekerjaan yang tertunda (sinkronisasi, tugas, dll.). Mode Istirahatkan kemudian melanjutkan mode tidur selama jangka waktu yang lebih lama, diikuti dengan masa pemeliharaan lainnya. Platform akan melanjutkan urutan tidur/pemeliharaan Doze, sehingga meningkatkan durasi tidak ada aktivitas setiap kali, hingga mencapai waktu tidur maksimum beberapa jam. Setiap saat, perangkat dalam mode Istirahat tetap mendeteksi gerakan dan segera keluar dari mode Istirahat jika gerakan terdeteksi.

Android 7.0 dan yang lebih tinggi memperluas mode Istirahatkan untuk memicu serangkaian pengoptimalan yang lebih ringan setiap kali pengguna menonaktifkan layar perangkat, meskipun pengguna terus bergerak, sehingga masa pakai baterai lebih lama.

Layanan sistem penting biasanya disiapkan oleh produsen perangkat agar dikecualikan dari Mode Tidur. Pengguna juga dapat mengecualikan aplikasi tertentu dari Mode Tidur menggunakan menu Setelan. Namun, mengecualikan aplikasi dapat menyebabkan baterai perangkat cepat habis. Secara default, Mode Istirahatkan dinonaktifkan di AOSP; untuk mengetahui detail tentang cara mengaktifkan Mode Istirahatkan, lihat Mengintegrasikan Mode Istirahatkan.

Persyaratan Mode Istirahatkan

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

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

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

Siklus proses mode Istirahatkan

Mode Doze dimulai saat platform mendeteksi bahwa perangkat tidak ada aktivitas dan berakhir saat satu atau beberapa aktivitas kriteria keluar terjadi.

Platform mendeteksi bahwa perangkat tidak ada aktivitas saat:

  • Perangkat tidak bergerak (menggunakan SMD).
  • Layar perangkat nonaktif selama beberapa waktu.

Mode Istirahat tidak aktif saat perangkat yang menggunakan daya baterai dicolokkan ke pengisi daya.

Selama Mode Istirahatkan

Platform ini mencoba mempertahankan sistem dalam status tidur, secara berkala melanjutkan operasi normal selama periode pemeliharaan, lalu mengembalikan perangkat ke mode tidur selama periode berulang yang lebih lama. Selama tidur, batasan berikut aktif:

  • Aplikasi tidak diizinkan untuk mengakses jaringan.
  • Wakelock 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 notifikasi pengingat acara.
  • Pemindaian Wi-Fi tidak dilakukan.
  • Sinkronisasi SyncAdapter dan tugas JobScheduler ditangguhkan hingga periode pemeliharaan berikutnya.
  • Aplikasi yang menerima pesan SMS dan MMS dimasukkan ke dalam daftar yang diizinkan sementara agar dapat menyelesaikan pemrosesannya.

Keluar

Platform akan mengeluarkan perangkat dari mode Istirahatkan saat mendeteksi:

  • Interaksi pengguna dengan perangkat
  • Pergerakan perangkat
  • Layar perangkat menyala
  • Alarm AlarmClock yang akan segera berbunyi

Notifikasi tidak menyebabkan perangkat keluar dari mode Istirahatkan.

Android 7.0 dan yang lebih tinggi memperluas Doze dengan mengaktifkan mode tidur ringan selama layar nonaktif, sebelum perangkat tidak ada aktivitas.

Gambar 1. Mode istirahatkan untuk perangkat yang tidak diam dan diam.

Tindakan Istirahatkan Mode Istirahatkan Ringan
Pemicu Layar nonaktif, menggunakan baterai, diam Layar nonaktif, menggunakan baterai (dicabut)
Waktu Periode yang terus meningkat dengan pemeliharaan Periode N menit berulang dengan periode pemeliharaan
Pembatasan Tidak ada akses jaringan, kunci layar aktif, atau pemindaian GPS/Wi-Fi; alarm dan tugas/sinkronisasi ditunda Tidak ada akses jaringan; tugas/sinkronisasi ditangguhkan kecuali selama masa pemeliharaan
Perilaku Hanya pesan notifikasi push prioritas tinggi yang diterima Semua pesan real-time (pesan instan, panggilan, dll.) diterima; pesan notifikasi push prioritas tinggi memungkinkan akses jaringan sementara
Keluar Alarm gerakan, layar aktif, atau jam alarm Layar aktif

Interaksi dengan Mode Aplikasi Standby

  • Waktu yang dihabiskan dalam mode Istirahatkan tidak dihitung sebagai Aplikasi Standby.
  • Saat perangkat dalam mode Istirahatkan, aplikasi yang tidak ada aktivitas diizinkan untuk melakukan operasi normal setidaknya sekali sehari.

Mengintegrasikan Mode Istirahatkan

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

Untuk mengaktifkan Mode Tidur untuk perangkat:

  1. Pastikan perangkat telah menginstal layanan pesan cloud.
  2. Dalam file konfigurasi overlay perangkat overlay/frameworks/base/core/res/res/values/config.xml, tetapkan config_enableAutoPowerModes ke true:
    <bool name="config_enableAutoPowerModes">true</bool>
    
    Di AOSP, parameter ini ditetapkan ke false (Doze dinonaktifkan) secara default.
  3. Pastikan aplikasi dan layanan yang dimuat sebelumnya:
  4. Pastikan layanan yang diperlukan dikecualikan dari Mode Tidur.

Tips

Menguji dan mengoptimalkan aplikasi

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