Mengoptimalkan konsumsi daya untuk aplikasi Anda

Dokumen ini menjelaskan praktik terbaik tentang cara mengoptimalkan konsumsi daya di aplikasi navigasi seluler yang Anda buat menggunakan Navigation SDK. Pada saat yang sama, panduan ini menjelaskan konsekuensi yang harus dipertimbangkan ketika menerapkan praktik ini. Secara khusus, dokumen ini membahas hal-hal berikut:

  • Sumber konsumsi daya tinggi, diurutkan dari yang tertinggi hingga terendah.
  • Strategi untuk mengoptimalkan konsumsi daya, sesuai urutan kepentingan, dimulai dari kecepatan frame.
  • Strategi pengguna akhir untuk mengedukasi pengguna aplikasi Anda cara mengelola penggunaan perangkat saat melakukan navigasi.

Mengapa mengoptimalkan aplikasi navigasi Anda?

Bergantung pada situasinya, pengguna aplikasi Anda mungkin menjalankan panduan navigasi dalam jangka waktu yang lama. Misalnya, kurir dan kurir pengiriman bisa bekerja dalam waktu yang panjang, menyelesaikan tugas di wilayah yang tidak dikenal. Dalam kasus ini, mereka sangat mengandalkan panduan belokan demi belokan dalam aplikasi. Hal ini menyebabkan beberapa masalah umum:

  • Daya baterai dan ketersediaan pengisi daya. Penggunaan navigasi yang berat dapat menyebabkan baterai perangkat lebih cepat habis dari yang diperkirakan. Meskipun banyak pengguna dapat mengatasi hal ini dengan mengisi daya perangkat mereka di kendaraan, pengemudi roda dua tidak dapat melakukannya.
  • Throttling perangkat karena panas. Bahkan pengguna yang terus-menerus mengisi daya perangkat mereka dapat mengalami masalah. Konsumsi daya tinggi dalam jangka waktu yang lama dapat menyebabkan perangkat menjadi panas, mengakibatkan throttling termal dan penurunan performa berikutnya.

Aplikasi navigasi belokan demi belokan mengandalkan fitur yang menggunakan banyak daya seperti layar, GPS, dan komunikasi radio dengan menara seluler, sehingga praktik terbaiknya adalah mengoptimalkan penggunaan daya aplikasi seluler. Selain itu, Anda harus mempertimbangkan kebutuhan penggunaan daya target audiens sehingga Anda dapat membuat kompromi yang tepat antara performa dan pengoptimalan konsumsi daya.

Apa yang paling banyak menggunakan daya?

Bagian ini membagi aktivitas dalam aplikasi yang terkait dengan konsumsi daya tinggi menjadi dua kategori:

  • Rendering layar
  • Pembaruan lokasi

Rendering layar

Rendering layar biasanya menyebabkan konsumsi daya tertinggi di aplikasi navigasi seluler. Setiap kali perangkat menggambar peta dan elemen UI lainnya di layar, perangkat akan mengandalkan pemrosesan GPU dan CPU. Demikian pula, jika pengguna membiarkan layar tersebut aktif dalam waktu lama, tindakan ini juga akan menggunakan lebih banyak daya.

Dalam batasan tertentu, Anda mungkin akan mendapati konsumsi daya yang tinggi dari pengemudi atau penumpang yang mengandalkan peta yang terlihat untuk mendapatkan panduan navigasi, terutama jika mereka menggunakan aplikasi secara terus-menerus selama berjam-jam. Dalam skenario ini, aplikasi juga melakukan kecepatan rendering yang lebih tinggi di layar karena peta kemudian diperbarui secara real time. Dalam beberapa kasus, layar dapat digambar ulang hampir terus-menerus, terutama saat pengguna berkendara dari lokasi ke lokasi tanpa berhenti.

Pembaruan lokasi

Selain rendering layar, dua aktivitas navigasi lainnya menghabiskan daya perangkat:

  • Penggunaan GPS dan menara BTS radio
  • Pembaruan dan berbagi lokasi, seperti memberikan PWT atau melaporkan posisi kendaraan di suatu armada.

Komunikasi GPS dan radio seluler bergantung pada operasi start-up yang boros daya: GPS harus menemukan satelit, dan radio seluler harus bernegosiasi dengan menara dan membuat koneksi. Oleh karena itu, radio seluler pada dasarnya berjalan terus-menerus selama navigasi, meskipun radio seluler tetap aktif selama 20-30 detik dalam upaya untuk meminimalkan biaya startup. Sistem operasi mengontrol setelan ini, yang tidak dapat Anda konfigurasi dengan mudah di aplikasi.

Untuk update lokasi, penggunaan daya bervariasi berdasarkan faktor yang tidak dapat diprediksi. Misalnya, jarak antara perangkat dan stasiun pangkalan seluler menentukan penggunaan daya, karena perangkat akan menggunakan sinyal minimum yang diperlukan untuk melanjutkan navigasi guna menghindari peralihan menara. Oleh karena itu, perangkat yang bernavigasi di area dengan konektivitas yang buruk akan menggunakan lebih banyak daya daripada perangkat yang dekat dengan stasiun pangkalan. Selain itu, beberapa aplikasi dapat berbagi pembaruan lokasi dengan layanan pengelolaan fleet pusat, sehingga harus berkomunikasi dengan server untuk melakukannya.

Mengoptimalkan penggunaan daya aplikasi

Tantangan untuk mengoptimalkan penggunaan daya di aplikasi navigasi adalah bahwa aplikasi ini sangat bergantung pada resource yang boros daya, sehingga membatasi opsi Anda untuk mengurangi dampak tanpa melakukan kompromi seperti membatasi penggunaan layar. Bagian ini menyediakan daftar pendekatan yang dapat Anda lakukan saat mengoptimalkan aplikasi, secara urutan dari yang paling berdampak hingga yang paling tidak berdampak.

Mengubah kecepatan frame

Layar memperbarui apa yang ditampilkan pada frekuensi yang dikenal sebagai kecepatan frame. Kecepatan frame biasanya diukur dalam Frame Per Detik (FPS). Karena rendering layar menggunakan banyak CPU atau GPU, Anda dapat mengurangi kecepatan frame untuk menghemat konsumsi daya.

Kerugian saat mengurangi kecepatan frame adalah rendering layar dapat terlihat kurang mulus, terutama jika peta sering diperbarui. Hal ini mungkin terlihat paling jelas jika peta diperbesar untuk menampilkan detail yang tinggi, saat pengguna bepergian dengan kecepatan tinggi, atau saat mengubah kecepatan atau arah secara signifikan.

Lihat bagian Kecepatan frame dalam dokumentasi developer Android Media Dev Center untuk mempelajari lebih lanjut cara mengubah kecepatan frame.

Meskipun Anda tidak dapat mengontrol cara pengguna akhir menyetel kecerahan layar perangkat atau berapa lama mereka tetap mengaktifkan layar, Anda dapat memberikan opsi untuk panduan navigasi tanpa peta. Ini akan memungkinkan pengguna akhir memilih opsi tersebut untuk menghemat daya. Misalnya, jika pengemudi sering bekerja di lingkungan yang sama, mereka mungkin tidak terlalu sering memerlukan panduan berbasis peta. Navigasi tanpa peta dapat diaktifkan dengan menetapkan tujuan dan panduan awal di Navigation SDK, tetapi tidak menampilkan peta.

Untuk menyembunyikan UI navigasi, jangan tambahkan NavigationView atau SupportNavigationFragment, atau jika Anda sudah melakukannya, hapus kode yang menambahkannya. Kode berikut dimodifikasi dari aplikasi demo Android Navigation SDK dan menunjukkan penggunaan komentar untuk menghapus kode yang menambahkan UI navigasi:

//Obtain a reference to the NavigationFragment
//setContentView(R.layout.activity_nav_fragment);
//mNavFragment = (SupportNavigationFragment)   getSupportFragmentManager().findFragmentById(R.id.navigation_fragment);

Navigation SDK akan terus memperbarui lokasi jalan yang ditangkap, PWT, dan jarak perjalanan yang tersisa, serta aplikasi Anda tetap dapat berlangganan ke semua peristiwa yang dilaporkan oleh SDK saat pengemudi melanjutkan. Hal ini tidak sesuai untuk setiap kasus penggunaan dan tentu saja bukan saran yang baik jika pengemudi perlu melihat peta dan mengikuti panduan visual. Screenshot berikut mengilustrasikan perbandingan per aspek untuk mengubah tampilan peta selama navigasi aktif.

Aplikasi demo yang berjalan dengan tampilan peta yang terlihat.
Gambar 1.Aplikasi demo iOS Navigation SDK yang menampilkan demo Data Kembali
Aplikasi demo berjalan tanpa tampilan peta yang terlihat.
Gambar 2.Aplikasi demo berjalan tanpa tampilan peta yang terlihat. Perhatikan sisa waktu dan jarak, serta lokasi yang diambil jalan masih diperbarui.

Menggunakan gaya peta gelap

Pertimbangkan untuk menata gaya peta agar menggunakan tema gelap guna mengurangi jumlah energi yang diperlukan untuk merender peta di layar.

Navigation SDK merender petanya menggunakan Google Maps SDK for Android, yang berisi opsi untuk menata gaya tampilan peta non-navigasi di aplikasi Anda. Tampilan navigasi juga mendukung pemaksaan mode gelap. Cara ini mungkin tidak memengaruhi setiap perangkat dengan cara yang sama karena perbedaan jenis layar, tetapi memungkinkan penghematan daya dalam beberapa kasus. Sebuah studi terbaru menemukan bahwa jumlah daya yang dihemat oleh mode gelap di beberapa layar bergantung pada seberapa terang layar saat memulai. Misalnya, mode gelap menghemat lebih banyak daya pada layar yang disetel ke kecerahan penuh dibandingkan dengan layar yang kecerahannya sudah disesuaikan ke 30-50% maksimum. Hal ini penting untuk dipertimbangkan saat menggunakan mode gelap untuk aplikasi Anda, karena penghematan daya akan bergantung pada cara pengguna akhir menyetel kecerahan layar mereka.

Untuk mempelajari lebih lanjut cara mengubah UI Navigasi, lihat Mengubah UI navigasi.

Screenshot Navigation SDK yang berjalan di iPhone 15 Pro dengan gaya peta gelap.
Gambar 3.Navigation SDK dikonfigurasi dengan gaya peta gelap

Untuk membuat gaya gelap pada peta Anda, gunakan objek MapStyleOptions dengan gaya JSON yang mewakili pilihan gaya peta gelap. Gaya JSON lama dapat dibuat menggunakan editor gaya visual lama di https://mapstyle.withgoogle.com/.

Mengubah frekuensi pembaruan lokasi GPS

Saat mempertimbangkan penggunaan daya dari update lokasi yang dikirim dari perangkat, lebih berfokus pada frekuensi pembaruan lokasi, bukan jumlah data yang dikirim dalam transmisi.

Hal ini bukanlah hal yang dapat Anda kontrol langsung di Navigation SDK , tetapi jika aplikasi Android Anda meminta lokasi secara terpisah, sebaiknya pertimbangkan saran dalam artikel Mengoptimalkan Lokasi untuk Baterai dalam dokumentasi developer Android. Saran yang sama berlaku untuk penggunaan sumber lokasi non-GPS (Sel dan Wi-Fi).

Berikan edukasi kepada pengguna

Pengguna aplikasi Anda mungkin ingin tahu cara mengoptimalkan konsumsi daya. Untuk membantu mengurangi konsumsi daya pada aplikasi, sarankan pengguna untuk melakukan hal berikut:

  • Kunci ponsel
  • Meletakkan aplikasi navigasi di latar belakang
  • Gunakan navigasi tanpa peta jika memungkinkan
  • Kurangi kecerahan layar, baik dengan menggunakan mode gelap untuk layar OLED dan AMOLED, atau dengan mengaktifkan kecerahan adaptif
  • Jaga perangkat agar tetap dingin
  • Hubungkan ke Wi-Fi di kendaraan jika tersedia
Lihat mengoptimalkan masa pakai baterai perangkat Android Anda untuk mendapatkan saran pengguna akhir tentang cara memperpanjang masa pakai baterai di Android. Perlu diingat bahwa saran ini mencakup tindakan yang dapat menurunkan efektivitas aplikasi navigasi seperti yang dibahas dalam Mengoptimalkan penggunaan daya aplikasi dalam panduan ini.

Mengukur konsumsi daya

Anda dapat menggunakan alat tingkat profesional untuk mengukur konsumsi daya, tetapi sering kali sulit atau mahal untuk memperolehnya. Aplikasi dan alat pembuatan profil IDE seperti Power Profiler di Android Studio dan panel Battery Usage di XCode Organizer mengukur konsumsi daya, tetapi mungkin sulit menghapus efek proses latar belakang atau menetapkan dasar pengukuran performa yang akan diukur. Dalam beberapa kasus, pembatasan perangkat dapat mencegah perolehan akses ke data yang diperlukan.

Anda dapat menggunakan hardware pemantauan daya tujuan khusus dan mengubah konfigurasi koneksi baterai, serta produk dan layanan komersial tersedia untuk membantu Anda melakukannya. Perhatikan bahwa memodifikasi perangkat dengan cara ini dapat membatalkan garansi perangkat.