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, dokumen ini menjelaskan pertimbangan kompromi saat menerapkan praktik ini. Secara khusus, dokumen ini membahas hal berikut:

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

Mengapa harus mengoptimalkan aplikasi navigasi Anda?

Bergantung pada situasi mereka, pengguna aplikasi Anda mungkin menjalankan panduan navigasi dalam jangka waktu yang lama. Misalnya, pengemudi dan kurir pengiriman dapat bekerja berjam-jam, 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:

  • Pengurasan baterai dan ketersediaan pengisi daya. Penggunaan navigasi yang berat dapat menyebabkan baterai perangkat terkuras lebih cepat dari yang diperkirakan. Meskipun banyak pengguna dapat mengatasi hal ini dengan mengisi daya perangkat di dalam kendaraan, pengemudi kendaraan roda dua tidak dapat melakukannya.
  • Pembatasan 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 menjadi panas, sehingga mengakibatkan pembatasan suhu dan penurunan performa berikutnya.

Aplikasi navigasi belokan demi belokan mengandalkan fitur yang menggunakan banyak 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 audiens target sehingga dapat membuat kompromi yang sesuai 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 tersebut mengandalkan pemrosesan GPU dan CPU. Demikian pula, jika pengguna membiarkan layar tersebut menyala dalam waktu yang lama, hal ini juga akan menggunakan lebih banyak daya.

Sampai batas tertentu, Anda dapat mengharapkan konsumsi daya yang tinggi dari pengemudi atau pengendara yang mengandalkan peta yang terlihat untuk bernavigasi, terutama jika mereka menggunakan aplikasi secara terus-menerus selama berjam-jam. Dalam skenario ini, aplikasi juga melakukan rendering dengan kecepatan 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 mengemudi dari satu lokasi ke lokasi lain tanpa berhenti.

Pembaruan lokasi

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

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

Komunikasi radio seluler dan GPS mengandalkan operasi startup yang menggunakan banyak daya: GPS harus menemukan satelit dan radio seluler harus melakukan negosiasi dengan menara dan membuat koneksi. Karena alasan ini, keduanya pada dasarnya berjalan terus-menerus selama navigasi, meskipun radio seluler tetap aktif selama 20-30 detik dalam upaya meminimalkan biaya startup. Sistem operasi mengontrol setelan ini yang tidak dapat Anda konfigurasi dengan mudah di aplikasi.

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

Mengoptimalkan penggunaan daya aplikasi Anda

Tantangan untuk mengoptimalkan penggunaan daya di aplikasi navigasi adalah aplikasi ini sangat bergantung pada resource yang menggunakan banyak daya, yang membatasi opsi Anda untuk mengurangi dampak tanpa membuat kompromi seperti membatasi penggunaan layar. Bagian ini menyediakan daftar pendekatan yang dapat Anda lakukan saat mengoptimalkan aplikasi, berdasarkan 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.

Kompromi saat mengurangi kecepatan frame adalah rendering layar dapat terlihat kurang lancar, terutama jika peta sering diperbarui. Hal ini mungkin paling terlihat saat peta diperbesar, saat pengguna bepergian dengan kecepatan tinggi, atau saat mengubah kecepatan atau arah dalam jumlah besar.

Di perangkat iOS, Maps SDK for iOS mengekspos properti preferredFrameRate untuk mengontrol kecepatan frame. Tabel di bawah menampilkan 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, kecepatan frame maksimum adalah 30 FPS. Untuk perangkat kelas atas, kecepatan frame maksimum adalah 60 FPS.

Sebagai referensi, lihat GMSFrameRate dalam dokumentasi Google Navigation SDK for iOS.

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

Tambahkan baris kode untuk menyembunyikan GMSMapView:

mapView.isHidden = true

Navigation SDK akan terus memperbarui lokasi yang disesuaikan dengan jalan, ETA, dan jarak perjalanan yang tersisa, dan aplikasi Anda masih dapat berlangganan semua peristiwa yang dimunculkan 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 antara mengalihkan tampilan peta selama navigasi aktif.

Aplikasi demo berjalan dengan tampilan peta yang terlihat.
Gambar 1.Aplikasi demo iOSNavigation SDK yang menampilkan demo Data Back
Aplikasi demo berjalan tanpa tampilan peta yang terlihat.
Gambar 2.Aplikasi demo yang berjalan tanpa tampilan peta terlihat. Perhatikan waktu dan jarak yang tersisa, serta lokasi yang disesuaikan dengan jalan masih diperbarui.

Menggunakan gaya peta gelap

Pertimbangkan untuk menata gaya peta agar menggunakan tema gelap untuk 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 mode gelap paksa. Hal ini mungkin tidak memengaruhi setiap perangkat dengan cara yang sama karena perbedaan jenis layar, tetapi memungkinkan potensi penghematan daya dalam beberapa kasus. Sebuah studi baru-baru ini menemukan bahwa jumlah daya yang dihemat oleh mode gelap di beberapa layar bergantung pada seberapa terang layar tersebut pada awalnya. Misalnya, mode gelap menghemat lebih banyak daya di layar yang disetel ke kecerahan penuh daripada di layar yang kecerahannya sudah disesuaikan ke 30-50% dari maksimum. Hal ini penting untuk dipertimbangkan saat menggunakan mode gelap untuk aplikasi Anda, karena penghematan daya akan relatif terhadap cara pengguna akhir menetapkan kecerahan layar.

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 yang dikonfigurasi dengan gaya peta gelap
Konfigurasikan GMSMapView Anda dengan mapID yang mewakili gaya peta berbasis Cloud yang ditentukan dalam project Anda.

Gaya visual peta berbasis Cloud memerlukan ID peta yang mewakili 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 mengetahui detail selengkapnya tentang cara mendesain dan men-deploy gaya peta berbasis Cloud, lihat dokumentasi developer tentang cara membuat dan mengelola gaya peta berbasis Cloud.

Mengubah frekuensi pembaruan lokasi GPS

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

Hal ini tidak dapat Anda kontrol secara langsung di Navigation SDK . Saran yang sama berlaku untuk menggunakan sumber lokasi non-GPS (Seluler dan Wi-Fi).

Memberi tahu pengguna

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

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

Mengukur konsumsi daya

Anda dapat menggunakan alat kelas profesional untuk mengukur konsumsi daya, tetapi sering kali sulit atau mahal untuk mendapatkannya. Alat pembuatan profil aplikasi dan IDE seperti Power Profiler di Android Studio dan panel Penggunaan Baterai di XCode Organizer mengukur konsumsi daya, tetapi mungkin sulit untuk menghapus efek proses latar belakang atau menetapkan dasar performa untuk diukur. Dalam beberapa kasus, pembatasan perangkat dapat mencegah akses ke data yang diperlukan.

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