Untuk meningkatkan masa pakai baterai perangkat, Android dapat memengaruhi status perangkat dengan pemantauan penggunaan dan bangun perangkat. Platform dapat memasuki status tidur untuk menjeda aktivitas agar tidak berjalan saat perangkat tidak digunakan.
Tentang Istirahatkan
Fitur Istirahatkan memperpanjang daya tahan baterai dengan menunda CPU latar belakang aplikasi dan aktivitas jaringan ketika perangkat tidak digunakan dalam jangka waktu yang lama.
Perangkat yang tidak ada aktivitas dalam Istirahatkan secara berkala memasuki masa pemeliharaan, dan selama itu aplikasi dapat menyelesaikan tugas yang tertunda (sinkronisasi, tugas, dll.). Istirahatkan lalu melanjutkan tidur yang lebih lama, diikuti dengan masa pemeliharaan berikutnya. Tujuan melanjutkan urutan tidur/pemeliharaan Istirahatkan, yang menambah tidak ada aktivitas setiap kali, hingga waktu tidur maksimum beberapa jam tercapai. Sama sekali waktu, perangkat dalam Istirahatkan tetap menyadari gerakan dan segera meninggalkan 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, yang memungkinkan daya tahan baterai yang lebih lama.
Layanan sistem kritis umumnya disiapkan oleh produsen perangkat untuk dikecualikan dari Istirahatkan. Pengguna juga dapat mengecualikan aplikasi tertentu dari Istirahatkan menggunakan Menu setelan. Namun, mengecualikan aplikasi dapat menyebabkan kehabisan baterai pada perangkat. Secara default, Istirahatkan dinonaktifkan di AOSP; untuk detail tentang mengaktifkan Istirahatkan, lihat Mengintegrasikan Istirahatkan.
Persyaratan Istirahatkan
Dukungan Istirahatkan mengharuskan perangkat memiliki layanan pesan {i>cloud<i}, seperti Firebase Cloud Messaging (FCM). Peristiwa pemicu eksternal, seperti pesan cloud, bisa membangunkan aplikasi untuk sementara guna melakukan pekerjaan selagi perangkat tetap dalam mode Istirahatkan.
Dukungan Istirahatkan Penuh juga memerlukan signifikan detektor gerakan (SMD) di perangkat; Namun, mode Istirahatkan ringan di Android 7.0 dan yang lebih tinggi tidak memerlukan SMD. Jika Istirahatkan diaktifkan di perangkat bahwa:
- Memiliki SMD, pengoptimalan Istirahatkan penuh terjadi (termasuk ringan pengoptimalan).
- Tidak memiliki SMD, hanya pengoptimalan Istirahatkan ringan yang terjadi.
Siklus proses Istirahatkan
Istirahatkan dimulai ketika platform mendeteksi bahwa perangkat sedang tidak ada aktivitas dan berakhir saat satu atau beberapa aktivitas kriteria keluar terjadi.
Platform akan mendeteksi bahwa perangkat sedang tidak ada aktivitas saat:
- Perangkat tidak bergerak (menggunakan SMD).
- Layar perangkat mati selama beberapa waktu.
Mode Istirahatkan tidak menyala saat perangkat bertenaga baterai dicolokkan ke pengisi daya.
Selama Istirahatkan
Platform mencoba menjaga sistem dalam keadaan tidur, secara berkala melanjutkan operasi normal selama masa pemeliharaan lalu mengembalikan perangkat untuk tidur dengan periode berulang yang lebih lama. Selama tidur, hal-hal berikut batasan aktif:
- Aplikasi tidak diizinkan mengakses jaringan.
- Penguncian layar saat aktif aplikasi diabaikan.
- Alarm ditunda. Tidak termasuk alarm jam dan alarm yang disetel menggunakan
setAndAllowWhileIdle()
(dibatasi hingga 1 per 15 menit per aplikasi saat dalam Istirahatkan). Pengecualian ini ditujukan untuk aplikasi (seperti Kalender) yang harus menampilkan notifikasi pengingat acara. - Pemindaian Wi-Fi tidak dilakukan.
SyncAdapter
sinkronisasi danJobScheduler
tugas ditunda hingga masa 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
- Gerakan perangkat
- Layar perangkat aktif
- Alarm AlarmClock segera
Notifikasi tidak menyebabkan perangkat keluar dari Istirahatkan.
Android 7.0 dan yang lebih tinggi memperluas fitur Istirahatkan dengan mengaktifkan mode tidur ringan saat layar mati, sebelum perangkat tidak ada aktivitas.
Gambar 1. Mode Istirahatkan untuk perangkat non-stasioner dan stasioner.
Tindakan | Istirahatkan | Istirahatkan Ringan |
---|---|---|
Pemicu | Layar mati, aktif baterai, tidak bergerak | Layar nonaktif, menggunakan baterai (tidak dicolokkan) |
Waktu | Peningkatan periode secara berurutan dengan pemeliharaan | Periode N-menit berulang dengan masa pemeliharaan |
Pembatasan | Tidak ada akses jaringan, penguncian layar saat aktif, atau pemindaian GPS/Wi-Fi; alarm dan tugas/sinkronisasi ditangguhkan | Tidak ada akses jaringan; tugas/sinkronisasi ditunda kecuali selama masa pemeliharaan |
Perilaku | Hanya pesan notifikasi push prioritas tinggi yang diterima | Semua pesan real-time (pesan instan, panggilan, dll.) yang diterima; pesan notifikasi push prioritas tinggi memungkinkan akses jaringan sementara |
Keluar | Gerakan, layar aktif, atau alarm jam alarm | Layar aktif |
Interaksi dengan Aplikasi Standby
- Waktu yang dihabiskan dalam mode Istirahatkan tidak diperhitungkan dalam Aplikasi Standby.
- Saat perangkat dalam Istirahatkan, aplikasi yang menganggur diizinkan untuk berjalan normal operasional setidaknya sekali sehari.
Mengintegrasikan Istirahatkan
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 dan vendor Istirahatkan
konfigurasi tidak diperlukan.
Untuk mengaktifkan Istirahatkan bagi perangkat:
- Pastikan layanan cloud messaging terinstal di perangkat.
- Di file konfigurasi overlay perangkat
overlay/frameworks/base/core/res/res/values/config.xml
, ditetapkanconfig_enableAutoPowerModes
ketrue
:<bool name="config_enableAutoPowerModes">true</bool>
Di AOSP, parameter ini disetel kefalse
(Istirahatkan dinonaktifkan) secara default.
- Pastikan aplikasi dan layanan bawaan:
- Gunakan
hemat daya
pedoman pengoptimalan kami. Untuk mengetahui detailnya, lihat Pengujian dan
mengoptimalkan aplikasi.
ATAU
- Dikecualikan dari fitur Istirahatkan dan Aplikasi Standby. Untuk mengetahui detailnya, lihat Mengecualikan aplikasi.
- Gunakan
hemat daya
pedoman pengoptimalan kami. Untuk mengetahui detailnya, lihat Pengujian dan
mengoptimalkan aplikasi.
- Pastikan layanan yang diperlukan dikecualikan dari Istirahatkan.
Tips
- Jika memungkinkan, gunakan FCM untuk downstream pesan.
- Jika pengguna Anda perlu segera melihat notifikasi, gunakan FCM pesan berprioritas tinggi.
- Berikan informasi yang memadai dalam pesan payload (untuk menghindari akses jaringan berikutnya yang tidak perlu).
- Setel alarm penting dengan
setAndAllowWhileIdle()
dansetExactAndAllowWhileIdle()
.
Menguji dan mengoptimalkan aplikasi
Uji semua aplikasi (terutama aplikasi yang dipramuat) dalam mode Istirahatkan. Untuk mengetahui detailnya, lihat Pengujian dengan fitur Istirahatkan dan Aplikasi Standby.