Ditulis oleh Madan Ankapura, Product Manager, Android
Ini adalah seri entri blog pertama yang menguraikan strategi dan panduan di Android berkenaan dengan daya.
Pengguna Anda sangat peduli dengan ketahanan baterai -- jika baterai terlalu cepat habis, itu artinya mereka tidak bisa menggunakan aplikasi Anda. Melakukan manajemen daya baterai dengan baik adalah bagian penting dari hubungan Anda dengan pengguna, dan kami terus menambahkan beberapa fitur ke platform yang bisa membantu Anda mencapainya.
Sebagai bagian dari kebijakan Play yang kami umumkan tentang peningkatan keamanan dan kinerja aplikasi, API level target aplikasi tidak boleh lebih lama dari satu tahun sejak rilis Android terbaru. Menjaga API level target selalu terbaru akan memastikan aplikasi bisa memanfaatkan peningkatan keamanan dan kinerja yang ditawarkan dalam rilis platform terbaru. Saat Anda mengupdate API level target aplikasi, Anda harus mengevaluasi kebutuhan latar belakang dan latar depan, yang dapat memiliki dampak signifikan terhadap daya & kinerja.
Rilis Android di masa lalu menyertakan sejumlah fitur yang membantu mengelola masa pakai baterai dengan lebih baik, seperti:
  • Job Scheduler di Android 5.0 Lollipop, yang memungkinkan penangguhan pekerjaan
  • Istirahatkan dan Aplikasi Standby di Android 6.0 Marshmallow, yang menonaktifkan akses jaringan dan menangguhkan sinkronisasi dan pekerjaan latar belakang - ketika perangkat atau aplikasi tidak digunakan untuk waktu yang lama.
  • Penyempurnaan Istirahatkan di Android 7.0 Nougat, yang menerapkan subset pembatasan Istirahatkan saat layar mati dan tidak diam.
  • Batasan latar belakang di Android 8.0 Oreo, yang mencegah layanan latar belakang dan menghambat update lokasi.
Di Android 9 Pie, kami melakukan penyempurnaan lebih lanjut berdasarkan ketiga prinsip ini:
  1. Developer ingin mem-build aplikasi yang keren
  2. Aplikasi harus hemat daya
  3. Pengguna tidak mau direpotkan harus mengonfigurasi setelan aplikasi
Ini berarti bahwa OS harus lebih cerdas dan beradaptasi dengan preferensi pengguna sembari meningkatkan masa pakai baterai perangkat. Untuk memenuhi kebutuhan ini, kami memperkenalkan Bucket Aplikasi Standby, Pembatasan Latar Belakang, dan Penghemat Bateraiyang disempurnakan. Silakan uji aplikasi Anda dengan mengaktifkan fitur-fitur ini pada perangkat yang menjalankan Android 9 Pie.
Penghemat Baterai dan Istirahatkan beroperasi pada tingkat perangkat yang luas, sementara Baterai Adaptif (bucket aplikasi standby yang didukung model ML Deepmind) dan pembatasan latar belakang beroperasi pada basis per aplikasi. Diagram di bawah ini membantu memahami kapan pekerjaan terjadwal akan berjalan.

Selagi Anda mengupdate aplikasi untuk menargetkan Oreo atau versi di atasnya, harap tinjau checklist ini dan ikuti tabel di bawah untuk pekerjaan latar belakang
Saat Ini Menggunakan Porting ke Oreo
JobScheduler JobScheduler
Firebase JobDispatcher Firebase JobDispatcher
Layanan Latar Belakang Jobscheduler
Layanan Latar Depan Layanan Latar Depan dengan aksi untuk MENGHENTIKAN layanan
Catatan: ketika WorkManager API menjadi stabil, kami akan merekomendasikan WorkManager untuk sebagian besar kasus penggunaan ini
Kami merekomendasikan strategi berikut karena pentingnya bagi developer aplikasi untuk berinvestasi dalam pola desain dan arsitektur yang tepat:
  1. Lakukan pekerjaan yang diperlukan saat pengguna aktif menggunakan aplikasi
  2. Buat pekerjaan/tugas apa pun yang dilakukan di latar belakang dapat ditangguhkan
  3. Gunakan layanan latar depan tetapi berikan aksi dalam notifikasi sehingga pengguna bisa menghentikan layanan latar depan
Demikian pula, OS primitif lainnya seperti alarm, jaringan, dan pesan FCM juga memiliki batasan yang dijelaskan dalam dokumentasi developer mengenai pembatasan manajemen daya. Anda bisa mempelajari lebih lanjut tentang masing-masing fitur ini melalui presentasi Google I/O, DevByte dan dokumentasi developer optimalisasi daya tambahan.
Kami akan memublikasikan seri panduan pola desain dalam beberapa minggu mendatang. Nantikan informasi selanjutnya.
Ucapan Terima Kasih: Seri entri blog ini adalah kolaborasi bersama dengan tim DevRel dan Android Framework.