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

Bu dokümanda, Navigasyon SDK'sını kullanarak derlediğiniz bir mobil navigasyon uygulamasında güç tüketimini optimize etmeye yönelik en iyi uygulamalar açıklanmaktadır. Aynı zamanda, bu uygulamaları kullanırken göz önünde bulundurulması gereken ödünleşimleri de açıklar. Bu dokümanda özellikle aşağıdakiler ele alınmaktadır:

  • En yüksekten en düşüğe doğru sıralanmış yüksek güç tüketimi kaynakları.
  • Kare hızından başlayarak güç tüketimini önem sırasına göre optimize etmeye yönelik stratejiler.
  • Uygulama kullanıcılarınızı, gezinirken cihaz kullanımlarını nasıl yöneteceklerini eğitmek için son kullanıcı stratejileri.

Gezinme uygulamanızı neden optimize etmelisiniz?

Uygulama kullanıcılarınız, kendi durumlarına bağlı olarak uzun süre navigasyon rehberliğini kullanabilir. Örneğin, sürücü ve teslimat kuryeleri uzun saatler çalışarak bilinmediğiniz bir bölgede iş yapabilir. Bu durumlarda büyük oranda uygulama içi adım adım rehberlik kullanırlar. Bu durum bazı tipik sorunlara yol açar:

  • Pilin çabuk bitmesi ve şarj cihazlarının kullanılabilirliği. Navigasyonu yoğun şekilde kullanmak, cihaz pillerinin beklenenden daha hızlı bitmesine neden olabilir. Birçok kullanıcı araçta cihazlarını şarj ederek bu sorunu çözebilir, ancak iki tekerlekli araç sürücüleri bunu yapamaz.
  • Cihazın ısınması nedeniyle kısıtlanması. Cihazlarını sürekli şarj eden kullanıcılar bile sorun yaşayabilir. Uzun süre boyunca yüksek güç tüketimi, cihazın ısınmasına, dolayısıyla termal akışa ve buna bağlı olarak performans kaybına neden olabilir.

Adım adım navigasyon uygulamaları ekran, GPS ve baz istasyonlarıyla radyo iletişimi gibi çok güç tüketen özelliklerden yararlandığından, mobil uygulamanızın güç kullanımını optimize etmek en iyi uygulamadır. Ayrıca, performans ve güç tüketimini optimize etme arasındaki uygun dengeleri belirleyebilmek için hedef kitlenizin güç kullanımı gereksinimlerini dikkate almalısınız.

En çok güç tüketen nedir?

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

  • Ekran oluşturma
  • Konum güncellemeleri

Ekran oluşturma

En yüksek güç tüketimini mobil gezinme uygulamalarında ekran oluşturma genellikle oluşturur. Cihaz, ekranda bir harita ve başka kullanıcı arayüzü öğeleri çizdiğinde, GPU ve CPU işlemeden yararlanır. Benzer şekilde, kullanıcı bu ekranı uzun süre açık bıraktığında da daha fazla güç tüketilir.

Belirli bir dereceye kadar, rotayı izlemek için görünür bir haritaya güvenen sürücülerin veya sürücülerin, özellikle uygulamayı saatlerce kesintisiz olarak kullandıkları durumlarda yüksek güç tüketimi bekleyebilirsiniz. Bu senaryoda harita gerçek zamanlı olarak güncellendiğinden uygulama, ekranda daha yüksek oluşturma oranı da gerçekleştirir. Bazı durumlarda, özellikle de kullanıcı hiç durmadan bir yerden başka bir yere arabayla neredeyse sürekli tekrar çizim yapabilir.

Konum güncellemeleri

Ekran oluşturmaya ek olarak, diğer iki gezinme etkinliği cihaz gücünü tüketir:

  • Radyo baz istasyonu ve GPS kullanımı
  • Konum güncellemeleri ve paylaşımı (ör. TVS sağlamak veya bir aracın filodaki konumunu bildirmek için).

Hem GPS hem de hücre radyo iletişimleri, çok ihtiyaç duyulan başlatma işlemlerine dayanır: GPS uyduları bulmalı, hücresel radyo iletişimleri de kulelerle bağlantı kurmalı ve bağlantı kurmalıdır. Bu nedenlerle, hücre radyoları başlatma maliyetlerini en aza indirmek için 20-30 saniye boyunca etkin kalsa bile, esasen navigasyon sırasında kesintisiz çalışırlar. Uygulamanızda kolayca yapılandıramayacağınız bu ayarları işletim sistemi kontrol eder.

Konum güncellemelerinde güç kullanımı, tahmin edilemeyen faktörlere bağlı olarak değişiklik gösterir. Örneğin, cihaz, kuleler arasında geçiş yapılmasını önlemek amacıyla navigasyona devam etmek için gereken minimum sinyali kullanacağından, cihaz ile hücresel baz istasyonu arasındaki mesafe güç kullanımını belirler. Bu nedenle, bağlantının zayıf olduğu bir bölgede gezinen bir cihaz, baz istasyonuna yakın bir cihaza göre daha fazla güç tüketir. Ayrıca bazı uygulamalar konum güncellemelerini merkezi bir filo yönetim hizmetiyle paylaşabilir ve bu nedenle bunun için bir sunucuyla iletişim kurmaları gerekir.

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

Gezinme uygulamalarında güç kullanımını optimize etmenin zorluğu, bu uygulamaların büyük ölçüde güç tüketen kaynaklara bağımlı olmasıdır. Bu da ekran kullanımını kısıtlamak gibi bir şeyden ödün 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 etkili olana doğru sıralanmış bir listesi sunulmaktadır.

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

Ekranda gösterilen veriler, kare hızı olarak bilinen bir sıklıkta güncellenir. Kare hızı, genellikle Saniyedeki Kare Sayısı (FPS) cinsinden ölçülür. Ekran oluşturma işlemi çok fazla CPU veya GPU kullandığından güç tüketiminden tasarruf etmek için kare hızını düşürebilirsiniz.

Kare hızını azaltmanın karşılığında ise, özellikle harita sık sık güncelleniyorsa ekran oluşturmanın daha akıcı görünmesidir. Bu durum en çok, harita yüksek ayrıntıları gösterecek şekilde yakınlaştırıldığında, kullanıcı yüksek hızda ilerlerken veya hızı ya da yönü büyük ölçüde değiştirirken ortaya çıkabilir.

Kare hızlarını değiştirme hakkında daha fazla bilgi edinmek için Android Media Dev Center geliştirici belgelerinin Kare hızı bölümüne bakın.

Son kullanıcının cihazının ekran parlaklığını nasıl ayarlayacağını veya ekranını ne kadar süre açık tutacağını kontrol edemeseniz de harita olmadan navigasyon yardımı seçeneği sunabilirsiniz. Böylece son kullanıcı güç tasarrufu için bu seçeneği belirleyebilir. Örneğin, sürücüler düzenli olarak aynı mahallede çalışıyorsa harita tabanlı yardıma çok sık ihtiyaç duymayabilirler. Harita olmadan navigasyon özelliği, Navigasyon SDK'sında hedef ayarlayarak ve kılavuzu başlatarak etkinleştirilebilir, ancak harita görüntülenmeden kullanılabilir.

Gezinme kullanıcı arayüzünü gizlemek için NavigationView veya SupportNavigationFragment eklemeyin ya da bunu zaten yaptıysanız, bunları ekleyen kodu kaldırın. Aşağıdaki kod, Navigasyon SDK'sı Android demo uygulamasından değiştirilmiştir ve gezinme kullanıcı arayüzünü ekleyen kodu kaldırmak için yorumların kullanımını gösterir:

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

Navigasyon SDK'sı yola eklenen konumları, TVS'yi ve kalan yolculuk mesafesini güncellemeye devam eder. Uygulamanız, sürücü ilerledikçe SDK tarafından oluşturulan tüm etkinliklere abone olmaya devam edebilir. Bu her kullanım alanı için uygun değildir ve sürücünün haritayı görmesi ve görsel rehberliği takip etmesi gereken durumlarda elbette iyi bir tavsiye değildir. Aşağıdaki ekran görüntüleri, aktif navigasyon sırasında harita görünümlerini açma/kapatma işleminin yan yana karşılaştırmasını göstermektedir.

Harita görünümü görünür şekilde çalışan demo uygulama.
Şekil 1. Data Back demosunu gösteren gezinme SDK'sı iOS demo uygulaması
Demo uygulama, harita görünümü olmadan çalışıyor.
Şekil 2.Harita görünümü görünür olmadan çalışan demo uygulaması. Kalan süre ve mesafenin yanı sıra yola eklenen konumun güncellenmeye devam ettiğini unutmayın.

Koyu renkli harita stili kullanma

Haritayı ekranda oluşturmak için gereken enerji miktarını azaltmak üzere harita stilini koyu bir tema kullanacak şekilde değiştirmeyi düşünün.

Gezinme SDK'si, haritalarını Android için Google Haritalar SDK'sı kullanarak oluşturur. Bu SDK'da, uygulamanızdaki navigasyon olmayan harita görünümlerinin stilini belirleyebilirsiniz. Navigasyon görünümü, koyu modun kullanılmasını da destekler. Bu, ekran türü farklılıkları nedeniyle her cihazı aynı şekilde etkilemeyebilir ancak bazı durumlarda potansiyel güç tasarrufu sağlar. Yakın zamanda yapılan bir çalışma, bazı ekranlarda koyu mod ile tasarruf edilen güç miktarının, başlangıçta ekranın ne kadar parlak olduğuna bağlı olduğunu göstermektedir. Örneğin, koyu mod, tam parlaklığa ayarlanmış ekranlarda, parlaklığı maksimum ayarın% 30-50'sine ayarlanmış ekranlara kıyasla daha fazla güç tasarrufu sağlar. Güç tasarrufu, son kullanıcının ekran parlaklığını ayarlama şekline bağlı olduğundan 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 bkz. Gezinme kullanıcı arayüzünü değiştirme.

Koyu harita stiline sahip iPhone 15 Pro'da çalışan Navigasyon SDK'sının ekran görüntüsü.
Şekil 3.Koyu harita stiliyle yapılandırılmış gezinme SDK'sı

Haritanızda koyu stil oluşturmak için seçtiğiniz koyu harita stili seçiminizi temsil eden JSON stiline sahip bir MapStyleOptions nesnesi kullanın. Eski JSON stillerini, https://mapstyle.withgoogle.com/ adresindeki eski stil düzenleyici kullanılarak oluşturabilirsiniz.

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

Cihazdan gönderilen konum güncellemelerinden kaynaklanan güç kullanımını değerlendirirken, iletim sırasında gönderilen veri miktarı yerine konum güncellemelerinin sıklığına daha fazla odaklanın.

Bunu doğrudan Navigasyon SDK'sında kontrol edebilirsiniz ancak Android uygulamanız bağımsız olarak konum bilgisi istiyorsa Android geliştirici dokümanlarındaki Pil İçin Konumu Optimize Etme makalesindeki tavsiyeyi dikkate almalısınız. Aynı öneri, GPS olmayan konum kaynaklarının (Hücresel ve Kablosuz) kullanımı için de geçerlidir.

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

Uygulamanızın kullanıcıları güç tüketimlerini nasıl optimize edeceklerini bilmek isteyebilir. Uygulamalarının güç tüketimini azaltmalarına yardımcı olmak için kullanıcılarınızdan aşağıdakileri yapmalarını isteyin:

  • Telefonu kilitle
  • Navigasyon uygulamasını arka plana alın
  • Mümkünse, harita olmadan navigasyonu kullanın
  • OLED ve AMOLED ekranlar için koyu modu kullanarak veya otomatik parlaklığı etkinleştirerek ekran parlaklığını azaltın
  • Cihazı soğuk tutun
  • Varsa araç içi kablosuz ağa bağlanın
Son kullanıcıların Android'de pil ömrünü uzatmayla ilgili önerileri için Android cihazınızın pilinden en uzun süre yararlanma konusuna bakın. Bu önerinin, bu kılavuzdaki Uygulamanızın güç kullanımını optimize etme bölümünde ele alındığı üzere navigasyon uygulamasının etkinliğini azaltabilecek işlemleri kapsadığını unutmayın.

Güç tüketimini ölçme

Güç tüketimini ölçmek için profesyonel düzeyde araçlar kullanabilirsiniz, ancak bunları elde etmek genellikle zor veya maliyetli olur. Android Studio'da Güç Profilier ve XCode Düzenleyici'deki Pil Kullanımı bölmesi gibi uygulamalar ve IDE profil oluşturma araçları güç tüketimini ölçer, ancak arka plan işlemlerinin etkisini kaldırmak veya ölçüm yapmak için bir performans temeli ayarlamak 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. Bu işlemi yapmanıza yardımcı olacak ticari ürün ve hizmetler mevcuttur. Cihazların bu şekilde değiştirilmesinin cihaz garantisini geçersiz kılabileceğini unutmayın.