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

Bu belgede, Navigation SDK'yı 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 göz önünde bulundurulması gereken ödünleşmeleri de açıklar. Bu belgede özellikle aşağıdaki konular ele alınmaktadır:

  • Yüksek güç tüketimi kaynakları, en yüksekten en düşüğe doğru sıralanır.
  • Önem sırasına göre, kare hızından başlayarak güç tüketimini optimize etme stratejileri.
  • Uygulama kullanıcılarını, gezinirken cihaz kullanımını yönetme konusunda eğitmek için son kullanıcı stratejileri.

Neden navigasyon uygulamanızı optimize etmelisiniz?

Uygulama kullanıcılarınız, durumlarına bağlı olarak uzun süre boyunca navigasyon kılavuzunu çalıştırabilir. Örneğin, sürücüler ve kuryeler uzun saatler boyunca çalışarak bilmedikleri bölgelerde görevleri tamamlayabilir. Bu durumlarda, uygulama içi adım adım yol tarifine büyük ölçüde güvenilir. Bu durum, bazı tipik sorunlara yol açar:

  • Pilin hızlı tükenmesi ve şarj cihazlarının kullanılabilirliği. Yoğun navigasyon kullanımı, cihaz pillerinin beklenenden daha hızlı tükenmesine neden olabilir. Birçok kullanıcı bu sorunu cihazını araçta şarj ederek çözebilirken iki tekerlekli araç sürücüleri bunu yapamaz.
  • Cihaz, ısındığı için performansını düşürüyor. 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 neden olabilir. Bu durum, termal kısıtlamaya ve ardından performans kaybına yol açar.

Dönüş yönü navigasyon uygulamaları ekran, GPS ve baz istasyonlarıyla radyo iletişimi gibi güç gerektiren özelliklere dayanır. Bu nedenle, mobil uygulamanızın güç kullanımını optimize etmek en iyi uygulamalardan biridir. Ayrıca, performans ile güç tüketimini optimize etme arasında uygun dengeyi kurabilmek için hedef kitlenizin güç kullanımına yönelik ihtiyaçlarını da göz önünde bulundurmanız gerekir.

En çok gücü ne tüketiyor?

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 gezinme uygulamalarında en yüksek güç tüketimine neden olur. Cihaz, ekranda her harita ve diğer kullanıcı arayüzü öğelerini çizdiğinde GPU ve CPU işlemeye bağlıdır. Benzer şekilde, kullanıcı bu ekranı uzun süre açık bıraktığında da daha fazla güç tüketilir.

Özellikle uygulamayı uzun saatler boyunca sürekli olarak kullanan sürücülerin veya yolcuların, gezinmek için görünür bir haritaya güvenmeleri durumunda bir ölçüde yüksek güç tüketimi bekleyebilirsiniz. Bu senaryoda, harita anlık olarak güncellendiği için uygulama ekranda daha yüksek oranda oluşturma işlemi de gerçekleştirir. Bazı durumlarda ekran neredeyse sürekli olarak yeniden çizilebilir. Bu durum özellikle kullanıcının durmadan bir konumdan diğerine araç kullandığı zamanlarda görülür.

Konum güncellemeleri

Ekran oluşturmanın yanı sıra iki gezinme etkinliği daha cihaz gücünü tüketir:

  • Radyo baz istasyonu ve GPS kullanımı
  • Konum güncellemeleri ve paylaşımı (ör. tahmini varış zamanı sağlama veya bir filodaki araçların konumlarını bildirme)

Hem GPS hem de telefon radyosu iletişimi, güç tüketen başlatma işlemlerine dayanır: GPS'in uyduları bulması, telefon radyolarının ise kulelerle görüşüp bağlantı kurması gerekir. Bu nedenle, başlatma maliyetlerini en aza indirmek için hücresel radyolar 20-30 saniye boyunca etkin kalsa da gezinme sırasında esasen sürekli olarak çalışırlar. Bu ayarlar, uygulamanızda kolayca yapılandıramayacağınız işletim sistemi tarafından kontrol edilir.

Konum güncellemelerinde güç kullanımı, tahmin edilemeyen faktörlere göre değişir. Örneğin, cihaz ile hücresel baz istasyonu arasındaki mesafe, güç kullanımını belirler. Cihaz, kuleler arasında geçiş yapmamak için navigasyona devam etmek üzere gereken minimum sinyali kullanır. Bu nedenle, bağlantının zayıf olduğu bir alanda gezinirken bir baz istasyonuna yakın olan cihaza kıyasla daha fazla güç kullanılır. Ayrıca bazı uygulamalar konum güncellemelerini merkezi bir filo yönetim hizmetiyle paylaşabilir. Bu nedenle, bunu gerçekleştirmek için bir sunucuyla iletişim kurmaları gerekir.

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

Navigasyon uygulamalarında güç kullanımını optimize etmenin zorluğu, bu uygulamaların güç tüketen kaynaklara büyük ölçüde bağlı olmasıdır. Bu durum, ekran kullanımını kısıtlama gibi ödünler vermeden etkiyi azaltma seçeneklerinizi sınırlar. Bu bölümde, uygulamanızı optimize ederken kullanabileceğiniz yaklaşımların bir listesi en etkili olandan en az etkili olana doğru sıralanmış şekilde verilmektedir.

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

Ekran, gösterdiklerini kare hızı olarak bilinen bir sıklıkta günceller. Bu sıklık genellikle saniyedeki kare sayısı (FPS) olarak ölçülür. Ekran oluşturma önemli ölçüde CPU ve GPU işleme gücü kullandığından güç tasarrufu için kare hızını düşürebilirsiniz.

Kare hızını düşürdüğünüzde harita oluşturma ve etkileşimli hareketler (ör. kaydırma, yakınlaştırma veya döndürme) daha az akıcı görünebilir. Güç verimliliği ile duyarlı bir kullanıcı deneyimi arasında denge kurmak için temel kare hızını düşük tutabilir ve etkin kullanıcı etkileşimleri sırasında dinamik olarak artırabilirsiniz.

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

Otomatik kare hızı ayarlama

7.8.0 sürümünden itibaren Navigation SDK, performansı artırmak ve pil tüketimini azaltmak için etkin navigasyon sırasında haritanın kare hızını otomatik olarak ayarlar. Cihaz güç tasarrufu moduna girdiğinde haritanın kare hızı 10 FPS'ye düşer ve navigasyon sona erdiğinde veya güç tasarrufu modu devre dışı bırakıldığında 60 FPS'ye sıfırlanır.

Son kullanıcının cihaz ekran parlaklığını nasıl ayarladığını veya ekranını ne kadar süre açık tuttuğunu kontrol edemezsiniz ancak harita olmadan gezinme talimatları için bir seçenek 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 harita tabanlı rehberliğe o kadar sık ihtiyaç duymayabilir. Haritasız navigasyon, Navigation SDK'da hedef belirleyip rotayı başlatarak etkinleştirilebilir ancak harita gösterilmez.

Gezinme kullanıcı arayüzünü gizlemek için NavigationView veya SupportNavigationFragment eklemeyin. Zaten eklediyseniz bunları ekleyen kodu kaldırın. Aşağıdaki kod, Navigasyon SDK'sı Android demo uygulamasından değiştirilmiştir ve navigasyon 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);

Navigation SDK, yola yerleştirilmiş konumları, TVS'yi ve yolculukta kalan mesafeyi güncellemeye devam eder. Sürücü ilerledikçe uygulamanız, SDK tarafından oluşturulan tüm etkinliklere abone olmaya devam edebilir. Bu yöntem her kullanım alanı için uygun değildir ve sürücünün haritayı görmesi ve görsel talimatları 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ürken çalışan demo uygulaması.
Şekil 1. iOS demo uygulamasında Navigation SDK'sı Data Back demosunu gösteriyor
Demo uygulaması, harita görünümü görünür olmadan çalışıyor.
Şekil 2. Harita görünümü görünür durumda olmadan çalışan demo uygulaması. Kalan süre ve mesafenin yanı sıra yola sabitlenmiş konumun güncellenmeye devam ettiğini unutmayın.

Koyu harita stili kullanma

Haritanın ekranda oluşturulması için gereken enerji miktarını azaltmak amacıyla haritayı koyu tema kullanacak şekilde stilize etmeyi düşünebilirsiniz.

Navigasyon SDK'sı, haritalarını Android için Google Haritalar SDK'sı ile oluşturur. Bu SDK, uygulamanızdaki navigasyon dışı tüm harita görünümlerini stilize etme seçeneklerini içerir. Navigasyon görünümü, koyu modun zorunlu kılınmasını da destekler. Ekran türündeki farklılıklar nedeniyle bu ayar her cihazı aynı şekilde etkilemeyebilir ancak bazı durumlarda güç tasarrufu sağlayabilir. Yakın tarihli bir çalışmada, bazı ekranlarda karanlık modun sağladığı güç tasarrufu miktarının, ekranın başlangıçtaki parlaklığına bağlı olduğu tespit edildi. Örneğin, karanlık mod, parlaklığı maksimum seviyeye ayarlanmış ekranlarda, parlaklığı% 30-50 oranında ayarlanmış ekranlara kıyasla daha fazla güç tasarrufu sağlar. Uygulamalarınızda koyu modu kullanırken bunu göz önünde bulundurmanız önemlidir. Çünkü güç tasarrufu, son kullanıcının ekran parlaklığını nasıl ayarladığına bağlıdır.

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.

Koyu harita stiliyle iPhone 15 Pro'da çalışan Navigation SDK.
Şekil 3.Koyu harita stiliyle yapılandırılmış Navigation SDK

Haritanız için koyu stil oluşturmak üzere, koyu harita stili seçiminizi temsil eden bir JSON stili içeren MapStyleOptions nesnesi kullanın. Eski JSON stilleri, https://mapstyle.withgoogle.com/ adresindeki eski stil düzenleyici kullanılarak oluşturulabilir.

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

Cihazdan gönderilen konum güncellemelerindeki güç kullanımını değerlendirirken iletimde gönderilen veri miktarı yerine konum güncellemelerinin sıklığına daha fazla odaklanın.

Bu, Navigation SDK'da doğrudan kontrol edebileceğiniz bir durum değildir. Ancak Android uygulamanız konum isteğinde bağımsız olarak bulunuyorsa Android geliştirici belgelerindeki Optimize Location for Battery (Pil İçin Konumu Optimize Etme) makalesindeki tavsiyeleri dikkate almanız gerekir. GPS dışı konum kaynaklarını (hücresel ve kablosuz) kullanırken de aynı tavsiyeler geçerlidir.

Kullanıcılarınızı eğitme

Uygulamanızın kullanıcıları, güç tüketimlerini nasıl optimize edeceklerini bilmek isteyebilir. Kullanıcılarınızın uygulamalarındaki güç tüketimini azaltmasına yardımcı olmak için onlara şunları yapmalarını önerin:

  • Telefonu kilitleme
  • Navigasyon uygulamasını arka plana alın
  • Mümkünse harita olmadan navigasyonu kullanma
  • OLED ve AMOLED ekranlarda koyu modu kullanarak veya otomatik parlaklığı etkinleştirerek ekran parlaklığını azaltma
  • Cihazı serin tutun
  • Varsa araç içi kablosuz ağa bağlanma
Android'de pil ömrünü uzatma konusunda son kullanıcı tavsiyeleri için Android cihazınızın pilinden en uzun süre yararlanma başlıklı makaleyi inceleyin. Bu tavsiyenin, bu kılavuzdaki Uygulamanızın güç kullanımını optimize etme bölümünde ele alındığı gibi, bir navigasyon uygulamasının etkinliğini azaltabilecek işlemler içerdiğini unutmayın.

Güç tüketimini ölçme

Güç tüketimini ölçmek için profesyonel düzeyde araçlar kullanabilirsiniz ancak bu araçları edinmek genellikle zor veya maliyetli olur. Android Studio'daki Power Profiler 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 karşılaştırma için bir performans temeli 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ı yapılandırmasını değiştirebilirsiniz. Bu konuda size yardımcı olacak ticari ürünler ve hizmetler mevcuttur. Cihazları bu şekilde değiştirmenin cihazın garantisini geçersiz kılabileceğini unutmayın.