Peningkatan konsumsi baterai — salah satu keluhan paling umum dari pengguna aplikasi mobile. Aplikasi mulai mengonsumsi energi secara tidak normal, menyebabkan perangkat cepat habis bahkan dalam mode latar belakang. Menurut Google I/O 2023, hingga 30% aplikasi di Google Play memiliki masalah konsumsi daya, yang secara langsung memengaruhi retensi pengguna. Dalam artikel ini kita akan membahas penyebab, diagnosis, dan metode optimasi.
Poin Utama
Peningkatan konsumsi baterai — kondisi di mana aplikasi mobile mengonsumsi energi jauh lebih banyak dari yang diharapkan dalam skenario penggunaan tipikal. Pengguna menyadari bahwa perangkat habis 20-30% lebih cepat dari biasanya setelah menginstal atau memperbarui aplikasi.
Sistem operasi mobile modern — Android dan iOS — memiliki mekanisme kontrol konsumsi energi bawaan. Android menggunakan Battery Optimization, dan iOS menggunakan Background Modes. Namun, penggunaan API yang salah dapat menghindari mekanisme ini.
Menurut penelitian Purdue University (2021), sekitar 60% aplikasi mengonsumsi energi untuk tugas latar belakang tanpa kebutuhan yang jelas. Ini terutama khas untuk aplikasi dengan iklan, analitik, dan koneksi jaringan permanen.
Konsumsi energi diukur dalam mA·h (miliampere-jam). Android menyediakan data melalui BatteryManager API, yang melacak konsumsi setiap komponen: CPU, modul radio, GPS, layar, dan sensor.
val batteryManager = getSystemService(Context.BATTERY_SERVICE) as BatteryManager
val chargeCounter = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER)
val capacity = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY)
// chargeCounter / capacity * 100 = persentase pengisian saat ini
BatteryManager API memungkinkan mendapatkan persentase pengisian daya saat ini dan kapasitas baterai, tetapi tidak memberikan detail per aplikasi — untuk itu diperlukan utilitas sistem.
WakeLock — mekanisme paling berbahaya untuk baterai. Jika aplikasi menahan WakeLock tanpa melepaskannya, perangkat tidak masuk ke mode tidur. Setiap jam penahanan WakeLock mengonsumsi sekitar 50-80 mA·h.
Permintaan jaringan tanpa pengelompokan — penyebab paling umum kedua. Setiap kali aplikasi membuat koneksi jaringan, modul radio beralih dari mode hemat energi ke mode aktif. Permintaan pendek yang sering dengan interval kurang dari 5 menit membuat modul radio tetap aktif secara konstan.
Penentuan lokasi GPS dengan akurasi tinggi (GPS_PROVIDER) mengonsumsi 10-15 kali lebih banyak energi daripada penentuan perkiraan (NETWORK_PROVIDER). Pembaruan lokasi terus-menerus di latar belakang adalah salah satu keluhan utama pengguna.
Menurut Android Developers Blog, aplikasi rata-rata mengonsumsi sekitar 15% dari total konsumsi baterai perangkat. Melebihi level ini memerlukan audit konsumsi energi wajib.
Battery Historian — alat resmi Google untuk analisis konsumsi energi. Ini menerima dump BatteryStats dari ADB dan memvisualisasikan konsumsi per komponen: CPU, Jaringan, GPS, WakeLock, dan layar.
Untuk membuat dump, jalankan perintah: adb shell dumpsys batterystats. Setelah mengumpulkan data selama 2-3 jam penggunaan normal, Anda dapat memuat laporan ke Battery Historian untuk dianalisis.
Android Energy Profiler di Android Studio melacak konsumsi energi secara real-time. Ini menunjukkan konsumsi CPU, Jaringan, GPS, dan layar untuk setiap operasi aplikasi.
# Setel ulang statistik baterai sebelum pengujian
adb shell dumpsys batterystats --reset
# Gunakan aplikasi selama 2-3 jam
# Ekspor dump untuk Battery Historian
adb shell dumpsys batterystats > batterystats_dump.txt
Untuk iOS digunakan Energy Log melalui Xcode — Instruments. Ini mengumpulkan data konsumsi energi yang dirinci per modul: CPU, Jaringan, GPU, Layar, Lokasi. Waktu baca: 15-30 menit untuk analisis satu sesi.
Pada perangkat iOS fisik, statistik konsumsi energi juga ditampilkan di Pengaturan > Baterai. Jika aplikasi masuk dalam 10 besar konsumsi — itu adalah sinyal untuk optimasi.
WorkManager — API standar untuk tugas latar belakang yang mempertimbangkan status baterai, jaringan, dan mode Doze. Ini menjamin eksekusi tugas dalam kondisi optimal, bukan segera, yang menghemat hingga 40% energi pada operasi latar belakang.
val workRequest = OneTimeWorkRequestBuilder<SyncWorker>()
.setConstraints(
Constraints.Builder()
.setRequiresCharging(true)
.setRequiresBatteryNotLow(true)
.setRequiresNetworkType(NetworkType.CONNECTED)
.build()
)
.build()
WorkManager.getInstance(this).enqueue(workRequest)
Pengelompokan permintaan — menggabungkan beberapa operasi jaringan menjadi satu sesi komunikasi. Alih-alih 10 permintaan terpisah, aplikasi melakukan satu permintaan kelompok, yang mengurangi waktu aktivitas modul radio dari 30 detik menjadi 2-3 detik.
FusedLocationProviderClient dari Google Play Services memilih sumber lokasi optimal berdasarkan akurasi yang diperlukan. Untuk tugas latar belakang, gunakan prioritas PRIORITY_BALANCED_POWER_ACCURACY — ini memberikan akurasi hingga 100 meter dengan konsumsi baterai minimal.
Di iOS, gunakan Significant Location Change alih-alih Continuous Location. Ini memungkinkan menerima pembaruan hanya saat perpindahan signifikan (lebih dari 500 meter), bukan setiap beberapa detik.
Android Battery Historian — alat web Google untuk memvisualisasikan data BatteryStats. Mendukung impor dump, kode warna komponen, dan perbandingan sesi. Metrik utama: waktu penahanan WakeLock, aktivitas modul radio, sesi GPS.
Xcode Energy Organizer mengumpulkan data konsumsi energi dari pengguna produksi melalui TestFlight dan App Store. Anda menerima laporan tentang konsumsi rata-rata di berbagai perangkat dan versi iOS. Ini memungkinkan melacak regresi setelah pembaruan.
PerfDog (Tencent) — alat cross-platform untuk pengujian kinerja, termasuk pengukuran konsumsi energi. Mendukung iOS dan Android, memungkinkan merekam indikator dengan frekuensi 1-10 frame per detik.
| Alat | Platform | Metrik |
|---|---|---|
| Battery Historian | Android | WakeLock, Jaringan, GPS, CPU, Layar |
| Energy Profiler | Android Studio | CPU, Jaringan, GPS, Radio secara real-time |
| Energy Log | iOS (Xcode) | CPU, Jaringan, GPU, Layar, Lokasi |
| PerfDog | iOS + Android | Energi, FPS, CPU, Memori (semua bersama) |
Menurut Apple WWDC 2023, penggunaan Energy Organiser memungkinkan pengurangan konsumsi energi rata-rata aplikasi sebesar 15-25% dengan mengidentifikasi dan memperbaiki regresi sebelum pembaruan dirilis di App Store.
Pertanyaan yang Sering Diajukan
Media sosial dan messenger (Facebook, Instagram, WhatsApp, Telegram) secara tradisional memimpin dalam konsumsi energi. Mereka terus-menerus menyinkronkan data, memperbarui feed, menerima notifikasi push, dan menggunakan GPS. Di posisi kedua — game dengan grafis 3D yang membebani GPU dan CPU secara bersamaan, mengonsumsi hingga 400-600 mA·h per jam permainan aktif.
Ya, secara langsung. Layar — komponen paling boros energi dari smartphone. Peningkatan frekuensi dari 60 Hz ke 120 Hz meningkatkan konsumsi energi layar sebesar 30-50%. Namun, layar modern dengan teknologi LTPO secara dinamis mengubah frekuensi dari 1 hingga 120 Hz tergantung pada konten, yang mengurangi dampak pada baterai.
GPS dengan akurasi tinggi mengonsumsi sekitar 200-300 mA·h per jam kerja terus-menerus. Sebagai perbandingan, penentuan lokasi melalui Wi-Fi dan menara seluler (NETWORK_PROVIDER) hanya mengonsumsi 20-40 mA·h dalam periode yang sama. Gunakan Geofencing API untuk mengaktifkan GPS hanya saat memasuki area tertentu.
Tidak perlu. Sistem operasi modern (Android dan iOS) mengoptimalkan proses latar belakang sendiri. Menutup paksa aplikasi dan memulai ulang mengonsumsi lebih banyak energi daripada jika aplikasi tetap di latar belakang. Pengecualian — aplikasi yang secara eksplisit menyebabkan masalah (ditentukan melalui statistik baterai di pengaturan).
Buka Pengaturan > Baterai > Penggunaan Baterai. Sistem akan menampilkan daftar aplikasi dengan persentase konsumsi. Untuk analisis terperinci, gunakan ADB: adb shell dumpsys batterystats dan muat dump ke Battery Historian. Ini akan menunjukkan tidak hanya konsumsi total, tetapi juga rincian per komponen (WakeLock, Jaringan, GPS).
Kesimpulan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga