Mengoptimalkan konsumsi daya untuk aplikasi Anda

Dokumen ini menjelaskan praktik terbaik tentang cara mengoptimalkan konsumsi daya dalam aplikasi navigasi seluler yang Anda buat menggunakan Navigation SDK. Pada saat yang sama, deskripsi ini menjelaskan kompromi yang perlu dipertimbangkan saat menerapkan praktik ini. Secara khusus, dokumen ini mencakup hal berikut:

  • Sumber konsumsi daya tinggi, yang diberi peringkat dari yang tertinggi hingga terendah.
  • Strategi untuk mengoptimalkan konsumsi daya, sesuai urutan kepentingannya, dimulai dengan kecepatan frame.
  • Strategi pengguna akhir untuk mengedukasi pengguna aplikasi Anda cara mengelola penggunaan perangkat saat bernavigasi.

Mengapa Anda harus mengoptimalkan aplikasi navigasi?

Bergantung pada situasinya, pengguna aplikasi Anda mungkin menjalankan panduan navigasi dalam jangka waktu yang lama. Misalnya, pengemudi dan kurir pengiriman dapat bekerja berjam-jam untuk menyelesaikan tugas di wilayah asing. Dalam kasus ini, mereka sangat bergantung pada panduan belokan demi belokan dalam aplikasi. Hal ini menyebabkan beberapa masalah umum:

  • Pengurasan baterai dan ketersediaan pengisi daya. Penggunaan navigasi yang berat dapat menyebabkan baterai perangkat habis lebih cepat dari yang diperkirakan. Meskipun banyak pengguna dapat mengatasi hal ini dengan mengisi daya perangkatnya di dalam kendaraan, pengemudi roda dua tidak bisa melakukannya.
  • Throttling perangkat karena panas. Bahkan pengguna yang terus mengisi daya perangkat mereka dapat mengalami masalah. Konsumsi daya yang tinggi dalam jangka waktu yang lama dapat menyebabkan perangkat memanas, sehingga akan terjadi throttling termal dan kehilangan performa berikutnya.

Aplikasi navigasi belokan demi belokan mengandalkan fitur yang boros daya seperti layar, GPS, dan komunikasi radio dengan menara seluler, jadi praktik terbaiknya adalah mengoptimalkan penggunaan daya aplikasi seluler Anda. Selain itu, Anda harus mempertimbangkan kebutuhan penggunaan daya target audiens agar Anda dapat membuat konsekuensi yang sesuai antara performa dan pengoptimalan konsumsi daya.

Apa yang paling banyak mengonsumsi 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 pada aplikasi navigasi seluler. Setiap kali menggambar peta dan elemen UI lainnya di layar, perangkat akan mengandalkan pemrosesan GPU dan CPU. Demikian pula, jika pengguna membiarkan layar menyala dalam waktu yang lama, hal itu juga akan menggunakan lebih banyak daya.

Hingga tingkat tertentu, Anda dapat memperkirakan konsumsi daya yang tinggi dari pengemudi atau penumpang yang mengandalkan peta yang terlihat untuk dinavigasi, 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 menggambar ulang hampir terus-menerus, terutama saat pengguna berkendara dari lokasi ke lokasi tanpa berhenti.

Pembaruan lokasi

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

  • Penggunaan GPS dan menara seluler radio
  • Pembaruan dan berbagi lokasi, seperti untuk menyediakan PWT atau melaporkan posisi kendaraan dalam armada.

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

Untuk pembaruan 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 untuk menghindari pengalihan menara. Oleh karena itu, perangkat yang bernavigasi di area dengan konektivitas buruk akan menggunakan lebih banyak daya daripada perangkat yang di dekat dengan stasiun pangkalan. Selain itu, beberapa aplikasi dapat berbagi pembaruan lokasi dengan layanan pengelolaan fleet pusat, sehingga harus berkomunikasi dengan server untuk mencapai hal ini.

Mengoptimalkan penggunaan daya aplikasi

Tantangan untuk mengoptimalkan penggunaan daya dalam aplikasi navigasi adalah 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 berurutan dari yang paling berdampak hingga yang paling tidak berdampak.

Mengubah kecepatan frame

Layar memperbarui apa yang ditampilkannya 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.

Konsekuensi saat mengurangi kecepatan frame adalah rendering layar dapat tampak kurang mulus, terutama jika peta sering diperbarui. Hal ini mungkin terlihat paling jelas saat peta diperbesar untuk menampilkan detail yang tinggi, saat pengguna melaju dengan kecepatan tinggi, atau saat mengubah kecepatan atau arah dengan jumlah yang besar.

Pada perangkat iOS, Maps SDK for iOS mengekspos properti preferredFrameRate untuk mengontrol kecepatan frame. Tabel di bawah menunjukkan nilai enumerator GMSFrameRate yang dapat Anda sesuaikan:

kGMSFrameRatePowerSave

Gunakan kecepatan frame minimum untuk menghemat penggunaan baterai.

kGMSFrameRateConservative

Gunakan kecepatan frame median untuk memberikan rendering yang lebih lancar dan menghemat siklus pemrosesan.

kGMSFrameRateMaximum

Gunakan kecepatan frame maksimum untuk perangkat.

Untuk perangkat kelas bawah, kecepatannya adalah 30 FPS. atau perangkat kelas atas, kecepatannya adalah 60 FPS.

Untuk referensi, lihat GMSFrameRate di dokumentasi Google Navigation SDK untuk iOS.

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

Tambahkan baris kode untuk menyembunyikan GMSMapView:

mapView.isHidden = true

Navigation SDK akan terus memperbarui lokasi yang diambil dari jalan, PWT, dan jarak perjalanan yang tersisa, dan aplikasi Anda tetap dapat berlangganan semua peristiwa yang dikumpulkan oleh SDK saat pengemudi melanjutkan perjalanan. 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 berdampingan untuk mengganti tampilan peta selama navigasi aktif.

Aplikasi demo yang berjalan dengan tampilan peta terlihat.
Gambar 1.Aplikasi demo iOS Navigation SDK menampilkan demo Kembali Data
Aplikasi demo berjalan tanpa tampilan peta yang terlihat.
Gambar 2.Aplikasi demo berjalan tanpa menampilkan tampilan peta. Perhatikan waktu dan jarak yang tersisa, serta lokasi yang diambil jalannya 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 iOS, yang berisi opsi untuk menata gaya tampilan peta non-navigasi di aplikasi Anda. Tampilan navigasi juga mendukung pemaksaan mode gelap. Hal 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 awalnya. Misalnya, mode gelap menghemat lebih banyak daya pada layar yang disetel ke kecerahan penuh dibandingkan dengan layar yang kecerahannya sudah disesuaikan hingga 30-50% maksimum. Hal ini penting untuk dipertimbangkan saat menggunakan mode gelap untuk aplikasi Anda, karena penghematan daya akan relatif terhadap cara pengguna akhir menyetel kecerahan layar.

Untuk mempelajari lebih lanjut cara memodifikasi UI Navigasi, lihat Memodifikasi UI navigasi.

Screenshot Navigation SDK yang berjalan di iPhone 15 Pro dengan gaya peta gelap.
Gambar 3.Navigation SDK yang dikonfigurasi dengan gaya peta gelap
Konfigurasikan GMS Anda dengan mapID yang mewakili gaya peta berbasis Cloud yang ditentukan dalam project Anda.

Gaya visual peta berbasis cloud memerlukan ID Peta yang merepresentasikan konfigurasi peta sisi server yang telah dibuat di project Konsol Google Anda. Untuk mengetahui informasi selengkapnya tentang cara membuat ID Peta, lihat dokumentasi developer ID Peta. Untuk detail selengkapnya tentang merancang dan men-deploy Gaya peta berbasis Cloud, lihat dokumentasi developer tentang membuat dan mengelola gaya peta berbasis Cloud.

Mengubah frekuensi pembaruan lokasi GPS

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

Anda tidak dapat mengontrolnya secara langsung di Navigation SDK . Saran yang sama berlaku untuk penggunaan sumber lokasi non-GPS (Sel dan WiFi).

Beri tahu pengguna

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

  • Kunci ponsel
  • Menempatkan 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 agar perangkat tetap dingin
  • Hubungkan ke Wi-Fi di dalam kendaraan jika tersedia

Mengukur konsumsi daya

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

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