Uygulamanızın güç tüketimini optimize edin

Bu dokümanda, Navigation SDK'sını kullanarak oluşturduğunuz bir mobil navigasyon uygulamasında güç tüketimini nasıl optimize edebileceğinize dair en iyi uygulamalar açıklanmaktadır. Aynı zamanda, bu uygulamaları kullanırken dikkate alınması gereken avantajları ve dezavantajları da açıklar. Bu dokümanda özellikle aşağıdakiler ele alınmaktadır:

  • Yüksek güç tüketimine sahip kaynaklar, en yüksekten en düşüğe göre sıralanmıştır.
  • Güç tüketimini optimize etmeye yönelik stratejiler. Öncelik sırasına göre, kare hızından başlayarak.
  • Uygulama kullanıcılarınızı gezinirken cihaz kullanımlarını nasıl yönetecekleri konusunda eğitmek için kullanıcı sonu stratejileri.

Navigasyon uygulamanızı neden optimize etmelisiniz?

Uygulamanızın kullanıcıları, durumlarına bağlı olarak uzun süre boyunca navigasyon kılavuzlarını çalıştırabilir. Örneğin, sürücüler ve teslimat kuryeleri, aşina olmadıkları bölgelerde görevleri tamamlamak için uzun saatler çalışabilir. Bu tür durumlarda, uygulama içi adım adım yol tarifine büyük ölçüde güvenirler. Bu durum bazı tipik sorunlara yol açar:

  • Pil tüketimi ve şarj cihazlarının kullanılabilirliği. Navigasyonu yoğun olarak kullanmak, cihaz pillerinin beklenenden daha hızlı tükenmesine neden olabilir. Birçok kullanıcı, cihazlarını araçta şarj ederek bu sorunu çözebilir ancak iki tekerlekli araç sürücüleri bunu yapamaz.
  • Isıtma nedeniyle cihazın hız sınırlaması. Cihazlarını sürekli olarak şarj eden kullanıcılar bile sorun yaşayabilir. Uzun süre boyunca yüksek güç tüketimi, cihazın ısınmasına neden olarak termal sınırlamaya ve ardından performans kaybına yol açabilir.

Adım adım yol tarifi uygulamaları ekran, GPS ve baz istasyonlarıyla radyo iletişimi gibi çok fazla güç kullanan özelliklere dayanır. Bu nedenle, mobil uygulamanızın güç kullanımını optimize etmek en iyi uygulamadır. Ayrıca, performans ile güç tüketimini optimize etme arasında uygun dengeyi sağlayabilmek için hedef kitlenizin güç kullanımı ihtiyaçlarını göz önünde bulundurmanız gerekir.

En çok güç tüketen şey nedir?

Bu bölümde, yüksek güç tüketimiyle ilişkili uygulama içi etkinlikler iki kategoriye ayrılır:

  • Ekran oluşturma
  • Konum güncellemeleri

Ekran oluşturma

Ekran oluşturma, genellikle mobil navigasyon uygulamalarında en yüksek güç tüketimine neden olur. Cihaz ekranda bir harita ve diğer kullanıcı arayüzü öğelerini her çizdiğinde GPU ve CPU işleme kullanılır. Benzer şekilde, kullanıcı bu ekranı uzun süre açık bıraktığında da daha fazla güç tüketilir.

Özellikle uygulamayı saatlerce kesintisiz olarak kullanan sürücülerin veya yolcuların, gezinmek için görünür bir haritaya güvenmesi, uygulamanın güç tüketimini bir dereceye kadar artırabilir. Bu senaryoda, harita gerçek zamanlı olarak güncellendiği için uygulama ekranda daha yüksek bir oluşturma hızı da gerçekleştirir. Bazı durumlarda ekran, özellikle kullanıcı bir yerden başka bir yere durmadan gittiğinde neredeyse sürekli olarak yeniden çizilebilir.

Konum güncellemeleri

Ekran oluşturmaya ek olarak, cihaz gücünü tüketen iki gezinme etkinliği daha vardır:

  • Radyo baz istasyonu ve GPS kullanımı
  • ETA sağlamak veya filodaki bir aracın konumunu bildirmek gibi konum güncellemeleri ve paylaşımı.

Hem GPS hem de hücresel radyo iletişimi, güç gerektiren başlangıç işlemlerine dayanır: GPS'in uyduları bulması, hücresel radyoların da kulelerle iletişim kurması ve bağlantı kurması gerekir. Bu nedenlerden dolayı, hücresel radyolar başlangıç maliyetlerini en aza indirmek için 20-30 saniye boyunca etkin kalmasına rağmen, navigasyon sırasında temel olarak sürekli çalışırlar. Bu ayarları işletim sistemi kontrol eder. Bu ayarları uygulamanızda kolayca yapılandıramazsınız.

Konum güncellemelerinde güç kullanımı, öngörülemeyen faktörlere göre değişir. Örneğin, cihaz kule değiştirmemek için navigasyona devam etmek üzere gereken minimum sinyali kullanacağından, cihaz ile hücresel baz istasyonu arasındaki mesafe güç kullanımını belirler. Bu nedenle, bağlantısının zayıf olduğu bir alanda gezinen bir cihaz, baz istasyonuna yakın bir cihazdan daha fazla güç tüketir. Ayrıca bazı uygulamalar, konum güncellemelerini merkezi bir filo yönetimi hizmetiyle paylaşabilir. Bu nedenle, bunu yapmak için bir sunucuya iletişim kurması gerekir.

Uygulamanızın güç kullanımını optimize etme

Navigasyon uygulamalarında güç kullanımını optimize etmenin zorluğu, bu uygulamaların çok fazla güç tüketen kaynaklara bağımlı olmasıdır. Bu durum, ekranın kullanımını kısıtlamak gibi ödünler vermeden etkiyi azaltma seçeneklerinizi sınırlandırır. Bu bölümde, uygulamanızı optimize ederken uygulayabileceğiniz yaklaşımların en etkiliden en az etkiliye doğru sıralanmış bir listesi verilmiştir.

Kare hızını değiştirme

Ekran, gösterdiği içeriği kare hızı olarak bilinen bir sıklıkta günceller. Kare hızı genellikle saniyedeki kare sayısı (FPS) olarak ölçülür. Ekran oluşturma işlemi çok fazla CPU veya GPU kullandığından, güç tüketimini azaltmak için kare hızını düşürebilirsiniz.

Kare hızını düşürmenin dezavantajı, özellikle harita sık güncelleniyorsa ekranın daha az akıcı görünmesidir. Bu durum, harita yüksek ayrıntı göstermek için yakınlaştırıldığında, kullanıcı yüksek hızda seyahat ettiğinde veya hız ya da yön büyük miktarda değiştiğinde en belirgin şekilde görülebilir.

iOS için Haritalar SDK'sı, iOS cihazlarda kare hızını kontrol etmek için preferredFrameRate mülkünü gösterir. Aşağıdaki tabloda, ayarlayabileceğiniz GMSFrameRate dizeleyici değerleri gösterilmektedir:

kGMSFrameRatePowerSave

Pil kullanımını azaltmak için minimum kare hızını kullanın.

kGMSFrameRateConservative

Daha sorunsuz bir oluşturma sağlamak ve işlem döngülerini korumak için orta düzey bir kare hızı kullanın.

kGMSFrameRateMaximum

Cihaz için maksimum kare hızını kullanın.

Düşük kaliteli cihazlar için bu değer 30 FPS, yüksek kaliteli cihazlar için ise 60 FPS'dir.

Referans olarak, iOS için Google Navigasyon SDK'sı belgelerindeki GMSFrameRate bölümüne bakın.

Son kullanıcının cihaz ekran parlaklığını nasıl ayarlayacağını veya ekranını ne kadar süre açık tutacağını kontrol edemeseniz de harita olmadan gezinme kılavuzu seçeneği sunabilirsiniz. Bu sayede son kullanıcı, güç tasarrufu yapmak için bu seçeneği belirleyebilir. Örneğin, sürücüler düzenli olarak aynı mahallede çalışıyorsa haritaya dayalı yönlendirmeye sık sık ihtiyaç duymayabilir. Harita göstermeden navigasyon, Navigasyon SDK'sında hedef ayarlayarak ve rehberliği başlatarak etkinleştirilebilir.

GMSMapView'ı gizlemek için bir kod satırı ekleyin:

mapView.isHidden = true

Navigasyon SDK'sı, yoldaki yakalanan konumları, tahmini varış saatini ve kalan yolculuk mesafesini güncellemeye devam eder. Sürücü ilerledikçe uygulamanız, SDK tarafından oluşturulan tüm etkinliklere abone olmaya devam edebilir. Bu, her kullanım alanı için uygun değildir ve elbette sürücünün haritayı görmesi ve görsel yönlendirmeyi takip etmesi gereken durumlarda iyi bir tavsiye değildir. Aşağıdaki ekran görüntülerinde, etkin navigasyon sırasında harita görünümlerini değiştirmenin yan yana karşılaştırması gösterilmektedir.

Harita görünümü görünür durumdayken çalışan demo uygulama.
Şekil 1. Verileri Geri Yükleme demosunu gösteren Navigation SDK iOS demo uygulaması
Harita görünümü görünmeden çalışan demo uygulama.
Şekil 2. Harita görünümü görünmeden çalışan demo uygulama. Kalan süre ve mesafenin yanı sıra yol üzerinde yakalanan konumun hâlâ güncellendiğini unutmayın.

Koyu harita stili kullanma

Haritayı ekranda oluşturmak için gereken enerji miktarını azaltmak amacıyla koyu tema kullanacak şekilde biçimlendirebilirsiniz.

Navigasyon SDK'sı, haritalarını iOS için Google Haritalar SDK'sını kullanarak oluşturur. Bu SDK, uygulamanızdaki navigasyon haritası dışındaki harita görünümlerini biçimlendirme seçenekleri içerir. Navigasyon görünümü, karanlık modu zorlamayı da destekler. Bu durum, ekran türlerindeki farklılıklar nedeniyle her cihazı aynı şekilde etkilemeyebilir ancak bazı durumlarda güç tasarrufu sağlayabilir. Yakın zamanda yapılan bir çalışmada, bazı ekranlarda koyu modun sağladığı güç tasarrufunun, ekranın başlangıçtaki parlaklığına bağlı olduğu tespit edildi. Örneğin, karanlık mod, parlaklığı maksimumun% 30-50'sine ayarlanmış ekranlarda olduğundan daha fazla güç tasarrufu sağlar. Enerji tasarrufu, son kullanıcının ekran parlaklığını nasıl ayarladığına bağlı olacağından, uygulamalarınızda koyu modu kullanırken bunu göz önünde bulundurmanız önemlidir.

Gezinme kullanıcı arayüzünü değiştirme hakkında daha fazla bilgi edinmek için Gezinme kullanıcı arayüzünü değiştirme başlıklı makaleyi inceleyin.

iPhone 15 Pro'da koyu harita stiliyle çalışan Navigasyon SDK'sının ekran görüntüsü.
Şekil 3. Koyu renkli harita stiliyle yapılandırılmış Navigasyon SDK'sı
GMSMapView'inizi, projenizde tanımlanan Cloud tabanlı bir harita stilini temsil eden bir harita kimliğiyle yapılandırın.

Bulut tabanlı harita stili için, Google Console projenizde oluşturulan sunucu tarafı harita yapılandırmasını temsil eden bir harita kimliği gerekir. Harita kimliği oluşturma hakkında daha fazla bilgi için harita kimliği geliştirici belgelerine bakın. Bulut tabanlı harita stili tasarlama ve dağıtma hakkında daha fazla bilgi için Bulut tabanlı harita stilleri oluşturma ve yönetme başlıklı geliştirici dokümanlarını inceleyin.

GPS konum güncelleme sıklığını değiştirme

Cihazdan gönderilen konum güncellemelerinden kaynaklanan güç kullanımını değerlendirirken, aktarım sırasında gönderilen veri miktarından ziyade konum güncellemelerinin sıklığına odaklanın.

Bu, Navigation SDK'da doğrudan kontrol edebileceğiniz bir şey değildir. GPS dışındaki konum kaynakları (hücresel ağ ve kablosuz ağ) için de aynı öneri geçerlidir.

Kullanıcılarınıza eğitim verin

Uygulamanızın kullanıcıları, güç tüketimini nasıl optimize edeceklerini öğrenmek isteyebilir. Uygulamalarındaki güç tüketimini azaltmalarına yardımcı olmak için kullanıcılarınıza aşağıdakileri yapmalarını önerin:

  • Telefonu kilitleme
  • Navigasyon uygulamasını arka plana alma
  • Mümkünse harita olmadan navigasyonu kullanma
  • OLED ve AMOLED ekranlar için karanlık modu kullanarak veya uyarlanabilir parlaklığı etkinleştirerek ekran parlaklığını azaltın
  • Cihazı serin tutun
  • Varsa araç içi kablosuz ağa bağlanın

Güç tüketimini ölçme

Güç tüketimini ölçmek için profesyonel sınıf araçlar kullanabilirsiniz ancak bu araçları elde etmek genellikle zor veya maliyetlidir. Android Studio'daki Güç Profilleyici ve XCode Organizer'daki Pil Kullanımı bölmesi gibi uygulamalar ve IDE profilleme araçları güç tüketimini ölçer ancak arka plan işlemlerinin etkisini kaldırmak veya ölçüm için bir performans referans noktası belirlemek zor olabilir. Bazı durumlarda cihaz kısıtlamaları, gerekli verilere erişimi engelleyebilir.

Özel amaçlı güç izleme donanımı kullanabilir ve pil bağlantısı yapılandırmasını değiştirebilirsiniz. Bunu yapmanıza yardımcı olacak ticari ürün ve hizmetler de mevcuttur. Cihazlarda bu şekilde değişiklik yapmanın cihazın garantisini geçersiz kılabileceğini unutmayın.