Bergabunglah bersama kami di ⁠#Android11: The Beta Launch Show pada tanggal 3 Juni!

Bucket Aplikasi Standby

Android 9 (API level 28) memperkenalkan fitur pengelolaan baterai baru yang disebut Bucket Aplikasi Standby. Bucket Aplikasi Standby membantu sistem memprioritaskan permintaan resource oleh aplikasi berdasarkan seberapa baru dan seberapa sering aplikasi digunakan. Berdasarkan pola penggunaan aplikasi, setiap aplikasi ditempatkan di salah satu dari lima bucket prioritas. Sistem membatasi resource perangkat yang tersedia untuk setiap aplikasi berdasarkan bucket tempat aplikasi berada.

Bucket prioritas

Sistem secara dinamis menetapkan setiap aplikasi ke bucket prioritas, dan menetapkan ulang aplikasi sesuai kebutuhan. Sistem dapat mengandalkan aplikasi pramuat yang menggunakan machine learning untuk menentukan seberapa mungkin setiap aplikasi akan digunakan, dan menetapkan aplikasi ke bucket yang sesuai. Jika aplikasi sistem tidak ada di perangkat, secara default sistem akan mengurutkan aplikasi berdasarkan seberapa baru aplikasi tersebut digunakan. Aplikasi yang lebih aktif ditetapkan ke bucket yang memberikan prioritas lebih tinggi pada aplikasi, sehingga membuat resource sistem lebih banyak tersedia untuk aplikasi. Secara khusus, bucket menentukan seberapa sering tugas aplikasi dijalankan, seberapa sering aplikasi dapat memicu alarm, dan seberapa sering aplikasi dapat menerima pesan Firebase Cloud Messaging berprioritas tinggi. Pembatasan ini hanya berlaku saat perangkat menggunakan daya baterai; sistem tidak menerapkan pembatasan ini pada aplikasi saat perangkat sedang mengisi daya.

Catatan: Setiap produsen dapat menetapkan kriteria mereka sendiri terkait bagaimana aplikasi non-aktif ditetapkan ke bucket. Sebaiknya Anda tidak memengaruhi ke bucket mana aplikasi Anda akan ditetapkan. Sebagai gantinya, fokuskan pada memastikan bahwa aplikasi Anda berperilaku dengan baik di bucket mana pun yang ditempatinya. Aplikasi Anda dapat mengetahui bucket yang ditempatinya dengan memanggil UsageStatsManager.getAppStandbyBucket().

Bucket tersebut adalah:

  • Active: Aplikasi sedang atau baru saja digunakan
  • Working set: Aplikasi digunakan secara rutin
  • Frequent: Aplikasi sering digunakan, tetapi tidak setiap hari
  • Rare: Aplikasi tidak sering digunakan

Selain itu, ada bucket khusus yaitu never untuk aplikasi yang telah diinstal tetapi tidak pernah dijalankan. Sistem memberlakukan pembatasan yang ketat pada aplikasi ini.

Catatan: Aplikasi yang berada dalam daftar putih Istirahatkan tidak dikenai pembatasan berbasis Bucket Aplikasi Standby.

Catatan: Uraian di bawah ini ditujukan untuk kasus non-prediktif. Sebaliknya, jika prediksi menggunakan machine learning untuk memprediksi perilaku, bucket dipilih dengan mengantisipasi tindakan berikutnya oleh pengguna, bukan berdasarkan keterkinian penggunaan. Misalnya, aplikasi yang baru digunakan mungkin saja ditempatkan di bucket rare karena machine learning memprediksi bahwa aplikasi tersebut tidak akan digunakan selama beberapa jam.

Active

Aplikasi berada di bucket active jika pengguna sedang atau baru saja menggunakannya. Misalnya

  • Aplikasi telah meluncurkan aktivitas
  • Aplikasi sedang menjalankan layanan latar depan
  • Aplikasi memiliki adaptor sinkronisasi yang terkait dengan penyedia konten yang digunakan oleh aplikasi latar depan
  • Pengguna mengklik notifikasi dari aplikasi

Jika aplikasi berada di bucket active, sistem tidak menerapkan batasan apa pun terkait tugas, alarm, atau pesan FCM aplikasi.

Working set

Aplikasi berada di bucket working set jika sering dijalankan tetapi tidak sedang aktif. Misalnya, aplikasi media sosial yang diluncurkan pengguna hampir setiap hari kemungkinan akan ditempatkan di working set. Aplikasi juga dipromosikan ke bucket working set jika digunakan secara tidak langsung.

Jika aplikasi berada di bucket working set, sistem menerapkan pembatasan ringan pada kemampuannya untuk menjalankan tugas dan memicu alarm. Untuk penjelasan lebih lanjut, baca Batasan pengelolaan daya.

Frequent

Aplikasi berada di bucket frequent jika digunakan secara teratur meskipun tidak setiap hari. Misalnya, aplikasi pelacakan olahraga yang dijalankan pengguna di gym mungkin ditempatkan di bucket frequent.

Jika aplikasi berada di bucket frequent, sistem akan menerapkan pembatasan yang lebih ketat pada kemampuannya untuk menjalankan tugas dan memicu alarm, serta memberlakukan batasan untuk pesan FCM berprioritas tinggi. Untuk penjelasan lebih lanjut, baca Batasan pengelolaan daya.

Rare

Aplikasi berada di bucket rare jika tidak sering digunakan. Misalnya, aplikasi hotel yang hanya dijalankan pengguna saat mereka menginap di hotel tersebut kemungkinan akan ditempatkan di bucket rare.

Jika aplikasi berada di bucket rare, sistem akan menerapkan pembatasan yang ketat pada kemampuannya untuk menjalankan tugas, memicu alarm, serta menerima pesan FCM berprioritas tinggi. Sistem juga membatasi kemampuan aplikasi tersebut untuk tersambung ke internet. Untuk penjelasan lebih lanjut, baca Batasan pengelolaan daya.

Praktik terbaik

Jika aplikasi Anda sudah mengikuti praktik terbaik untuk fitur Istirahatkan dan aplikasi standby, penanganan fitur pengelolaan daya baru ini tidak akan sulit. Namun, beberapa perilaku aplikasi yang sebelumnya berfungsi dengan baik dapat menyebabkan masalah.

  • Jangan mencoba memanipulasi sistem agar menempatkan aplikasi Anda ke dalam bucket tertentu. Metode bucketing sistem dapat berubah, dan setiap produsen perangkat dapat memilih untuk menulis aplikasi bucketing-nya sendiri dan dengan algoritme-nya sendiri. Sebagai gantinya, pastikan aplikasi Anda berperilaku dengan baik di bucket mana pun berada.
  • Jika tidak memiliki aktivitas peluncur, aplikasi mungkin tidak akan pernah dipromosikan ke bucket active. Sebaiknya Anda mendesain ulang aplikasi agar memiliki aktivitas peluncur.
  • Jika notifikasi aplikasi tidak dapat direspons, pengguna tidak akan dapat memicu promosi aplikasi tersebut ke bucket active melalui interaksi dengan notifikasi. Dalam hal ini, sebaiknya Anda mendesain ulang beberapa notifikasi yang sesuai agar dapat menerima respons dari pengguna. Untuk mempelajari beberapa pedoman, lihat Pola desain notifikasi Material Design.
  • Demikian pula, jika aplikasi tidak menampilkan notifikasi setelah menerima pesan FCM prioritas tinggi, pengguna tidak akan memiliki kesempatan untuk berinteraksi dengannya dan mempromosikannya ke bucket active. Satu-satunya tujuan penggunaan pesan FCM prioritas tinggi adalah untuk mengirim notifikasi ke pengguna, sehingga situasi ini tidak boleh terjadi. Jika Anda keliru menandai pesan FCM sebagai prioritas tinggi saat tidak ada interaksi pengguna yang dipicu, konsekuensi negatif lainnya dapat terjadi; misalnya, aplikasi Anda kehabisan kuota sehingga pesan FCM yang sangat mendesak diperlakukan sebagai pesan prioritas normal.

    Catatan: Jika pengguna terus-menerus menolak notifikasi, sistem akan menampilkan opsi sehingga pengguna dapat memblokir notifikasi mendatang. Jangan membanjiri pengguna dengan notifikasi hanya untuk mencoba mempertahankan aplikasi Anda di bucket active.

  • Jika aplikasi dibagi menjadi beberapa paket, paket-paket tersebut dapat berada di bucket yang berbeda dan, akibatnya, memiliki level akses yang berbeda. Sebaiknya Anda menguji aplikasi tersebut dengan paket yang ditetapkan ke berbagai bucket untuk memastikan aplikasi berperilaku dengan baik.