Manajemen Daya Platform

Untuk meningkatkan masa pakai baterai perangkat, Android dapat memengaruhi status perangkat dengan memantau penggunaan dan kewaspadaan perangkat. Platform dapat memasuki kondisi tidur untuk menghentikan sementara aktivitas yang 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 yang menganggur di Istirahatkan secara berkala memasuki jendela pemeliharaan, yang selama periode tersebut aplikasi dapat menyelesaikan pekerjaan yang tertunda (sinkronisasi, pekerjaan, dll.). Istirahatkan kemudian melanjutkan tidur untuk jangka waktu yang lebih lama, diikuti dengan jendela pemeliharaan lainnya. Platform melanjutkan urutan tidur/pemeliharaan Istirahatkan, meningkatkan durasi waktu idle setiap kali, hingga waktu tidur maksimum beberapa jam tercapai. Setiap saat, perangkat dalam mode Istirahatkan tetap menyadari adanya 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 ketika pengguna terus bergerak, sehingga memungkinkan masa pakai baterai lebih lama.

Layanan sistem penting umumnya diatur 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 habis. Secara default, Istirahatkan dinonaktifkan di AOSP; untuk detail tentang mengaktifkan Istirahatkan, lihat Mengintegrasikan Istirahatkan .

Persyaratan istirahat

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

Dukungan Istirahatkan Penuh juga memerlukan detektor gerakan signifikan (SMD) pada perangkat; namun, mode Istirahatkan yang 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 optimasi Istirahatkan ringan yang terjadi.

Siklus hidup Istirahatkan

Istirahatkan dimulai ketika platform mendeteksi bahwa perangkat dalam keadaan diam dan berakhir ketika satu atau lebih aktivitas kriteria keluar terjadi.

Deteksi

Platform mendeteksi bahwa perangkat tidak aktif ketika:

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

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

Selama Istirahatkan

Platform berupaya untuk menjaga sistem dalam kondisi tidur, secara berkala melanjutkan operasi normal selama jangka waktu pemeliharaan, lalu mengembalikan perangkat ke mode tidur untuk periode berulang yang lebih lama. Selama tidur, pembatasan berikut ini aktif:

  • Aplikasi tidak diizinkan mengakses jaringan.
  • Penguncian aplikasi diabaikan.
  • Alarm ditunda. 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 pekerjaan JobScheduler ditunda hingga jendela pemeliharaan berikutnya.
  • Aplikasi yang menerima pesan SMS dan MMS dimasukkan ke dalam daftar putih sementara sehingga aplikasi tersebut dapat menyelesaikan pemrosesannya.

KELUAR

Platform keluar dari perangkat dari mode Istirahatkan ketika mendeteksi:

  • Interaksi pengguna dengan perangkat
  • Pergerakan perangkat
  • Layar perangkat menyala
  • Alarm Jam Alarm yang akan segera terjadi

Notifikasi tidak menyebabkan perangkat keluar dari mode Istirahatkan.

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

Gambar 1. Mode Istirahatkan untuk perangkat nonstasioner dan stasioner
Tindakan Mengantuk Istirahatkan Ringan
Pemicu Layar mati, menggunakan baterai, tidak bergerak Layar mati, baterai hidup (dicabut)
Waktu Meningkatkan periode pemeliharaan secara berturut-turut Periode N-menit berulang dengan jendela pemeliharaan
Pembatasan Tidak ada akses jaringan, penguncian layar saat aktif, atau pemindaian GPS/Wi-Fi; alarm dan pekerjaan/sinkronisasi ditunda Tidak ada akses jaringan; pekerjaan/sinkronisasi ditunda kecuali selama masa pemeliharaan
Perilaku Hanya pesan pemberitahuan push prioritas tinggi yang diterima Semua pesan real-time (pesan instan, panggilan, dll.) diterima; pesan pemberitahuan push prioritas tinggi memungkinkan akses jaringan sementara
KELUAR Gerakan, layar menyala, atau alarm jam alarm Layar menyala

Interaksi dengan Aplikasi Siaga

  • Waktu yang dihabiskan dalam mode Istirahatkan tidak diperhitungkan dalam Aplikasi Siaga.
  • Saat perangkat dalam mode Istirahatkan, aplikasi yang tidak aktif diperbolehkan melakukan operasi normal 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 ringan. Android secara otomatis memilih pengoptimalan Istirahatkan yang sesuai dan konfigurasi vendor tidak diperlukan.

Untuk mengaktifkan Istirahatkan pada perangkat:

  1. Konfirmasikan bahwa perangkat telah menginstal layanan pesan cloud.
  2. Dalam file konfigurasi overlay perangkat overlay 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 (Istirahatkan dinonaktifkan) secara default.
  3. Konfirmasikan bahwa aplikasi dan layanan yang dimuat sebelumnya:
  4. Konfirmasikan bahwa layanan yang diperlukan dikecualikan dari Istirahatkan.

Kiat

Menguji dan mengoptimalkan aplikasi

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