Pengelolaan daya platform dengan Istirahatkan

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 dan JobScheduler 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:

  1. Pastikan layanan cloud messaging terinstal di perangkat.
  2. Di file konfigurasi overlay perangkat overlay/frameworks/base/core/res/res/values/config.xml, ditetapkan config_enableAutoPowerModes ke true:
    <bool name="config_enableAutoPowerModes">true</bool>
    
    Di AOSP, parameter ini disetel ke false (Istirahatkan dinonaktifkan) secara default.
  3. Pastikan aplikasi dan layanan bawaan:
  4. Pastikan layanan yang diperlukan dikecualikan dari Istirahatkan.

Tips

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.