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

Bu belgede, Gezinme SDK'sı kullanarak oluşturduğunuz mobil gezinme uygulamasında güç tüketimini optimize etmeyle ilgili en iyi uygulamalar açıklanmaktadır. Aynı zamanda bu uygulamaları kullanırken göz önünde bulundurulması gereken dengeleri de açıklar. Bu belgede özellikle şu konular ele alınmaktadır:

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

Navigasyon uygulamanızı neden optimize etmelisiniz?

Uygulama kullanıcılarınız, bulundukları duruma bağlı olarak uzun süre navigasyon rehberliği çalıştırabilir. Örneğin, sürücü ve teslimat kuryeleri uzun saatler çalışarak görevleri alışılmadık bir bölgede tamamlayabilir. Bu tür durumlarda çoğunlukla uygulama içi adım adım rehberlikten yararlanırlar. Bu durum bazı tipik sorunlara yol açar:

  • Pilin bitmesi ve şarj cihazlarının kullanılabilirliği. Yoğun navigasyon kullanımı, cihaz pillerinin beklenenden daha hızlı bitmesine neden olabilir. Pek çok kullanıcı cihazlarını araçta şarj ederek bu sorunu çözebilse de iki tekerlekli araç sürücüleri bunu yapamaz.
  • Isı nedeniyle cihazın kısıtlanması. Cihazlarını sürekli şarj eden kullanıcılar bile sorun yaşayabilir. Uzun süre yüksek güç tüketimi cihazın ısınmasına, dolayısıyla da termal sınırlamaya ve daha sonra performans kaybına neden olabilir.

Adım adım navigasyon uygulamaları; ekran, GPS ve baz istasyonlarıyla radyo iletişimi gibi güçlü özellikleri kullanır. Bu nedenle, mobil uygulamanızın güç kullanımını optimize etmek için en iyi uygulama budur. Ayrıca, performans ile güç tüketimini optimize etme arasında doğru dengeleri sağlayabilmek için hedef kitlenizin güç kullanım ihtiyaçlarını da göz önünde bulundurmalısınız.

En çok güç tüketen 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 her harita ve diğer kullanıcı arayüzü öğeleri çizdiğinde GPU ve CPU işlemeye ihtiyaç duyar. Benzer şekilde, kullanıcı bu ekranı uzun süre açık bıraktığında da daha fazla güç harcanır.

Bir ölçüde, rotayı izlemek için görünür bir haritaya güvenen sürücü veya yolcuların, özellikle de uygulamayı sürekli olarak uzun süre boyunca kullanan sürücülerin veya sürücülerin yüksek güç tüketimi olmasını bekleyebilirsiniz. Bu senaryoda, harita gerçek zamanlı olarak güncellendiği için uygulamanın ekranda oluşturma hızı da daha yüksektir. Bazı durumlarda, özellikle de kullanıcı durmadan bir yerden başka bir yere giderse ekran neredeyse sürekli olarak yeniden çizim yapabilir.

Konum güncellemeleri

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

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

GPS ve hücresel radyo iletişiminin her ikisi de güç tüketen başlatma işlemlerine ihtiyaç duyar: GPS uyduları bulmalı, radyo telsizleri de kulelerle görüşüp bağlantı kurmalıdır. Bu nedenle, hücre radyoları, başlatma maliyetlerini en aza indirmeye çalışırken 20-30 saniye boyunca etkin kalsa da aslında gezinme sırasında sürekli çalışır. İşletim sistemi, uygulamanızda kolayca yapılandıramayacağınız bu ayarları kontrol eder.

Konum güncellemelerinde güç kullanımı, öngörülemeyen faktörlere göre değişiklik gösterir. Örneğin, cihaz ile hücresel baz istasyonu arasındaki mesafe, güç kullanımını belirler. Çünkü cihaz, kuleler arasında geçiş yapmamak amacıyla navigasyona devam etmek için gereken minimum sinyali kullanır. Bu nedenle, bağlantısının zayıf olduğu bir alanda gezinen bir cihaz, bir baz istasyonuna yakın bir yerden daha fazla güç kullanır. Ayrıca, bazı uygulamalar konum güncellemelerini merkezi bir filo yönetim hizmetiyle paylaşabilir ve dolayısıyla bunu başarmak 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 büyük ölçüde güce aç kaynaklara ihtiyaç duymasıdır. Bu da ekran kullanımını kısıtlamak gibi ödün vermeden etkiyi azaltma seçeneklerinizi sınırlandırır. Bu bölümde, uygulamanızı optimize ederken izleyebileceğiniz yaklaşımların listesi, en etkiliden en az etkili olana doğru sıralanmıştır.

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

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

Kare hızının azaltılmasının olumsuz etkisi, özellikle harita sık sık güncelleniyorsa ekran oluşturmanın daha az düzgün görünmesidir. Bu durum en çok, harita yüksek ayrıntıları göstermek için yakınlaştırıldığında, kullanıcı yüksek hızda seyahat ederken veya hız ya da yönü büyük ölçüde değiştirildiğinde açıkça görülebilir.

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.

Son kullanıcının cihazının ekran parlaklığını nasıl ayarlayacağını veya ekranını ne kadar açık tutacağını kontrol edemeseniz de harita olmadan navigasyon yardımı seçeneği sunabilirsiniz. Bu şekilde son kullanıcı güçten tasarruf etmek için bu seçeneği belirleyebilir. Örneğin, aynı mahallede düzenli olarak çalışan sürücüler harita tabanlı rehberliğe çok sık ihtiyaç duymayabilir. Harita olmadan navigasyon, Navigation SDK'da bir hedef ayarlayarak ve kılavuzu başlatarak etkinleştirilebilir ancak harita görüntülemeden etkinleştirilebilir.

Gezinme kullanıcı arayüzünü gizlemek için NavigationView veya SupportNavigationFragment eklemeyin. Daha önce bu işlemi tamamladıysanız bunları ekleyen kodu kaldırın. Aşağıdaki kod, Gezinme 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ı yol tutturulan konumları, TVS'yi ve kalan yolculuk mesafesini güncellemeye devam eder. Uygulamanız, sürücü ilerledikçe SDK tarafından bildirilen 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ülerinde, aktif navigasyon sırasında harita görünümlerindeki geçişlerin yan yana karşılaştırması gösterilmektedir.

Demo uygulama, harita görünümü görünür durumda çalışıyor.
Şekil 1.Data Back demosunu gösteren Gezinme SDK'sı iOS demo uygulaması
Demo uygulama çalışıyor ancak harita görünümü görünmüyor.
Şekil 2. Harita görünümü görünmeden çalışan demo uygulama. Kalan süre, mesafe ve yolun kırpıldığı konumun güncellenmeye devam ettiğini unutmayın.

Koyu renkli bir harita stili kullanın

Haritayı ekranda oluşturmak için gereken enerji miktarını azaltmak üzere haritayı koyu bir tema kullanacak şekilde biçimlendirebilirsiniz.

Navigasyon SDK'sı, haritalarını Android için Google Haritalar SDK'sını kullanarak oluşturur. Bu SDK'lar, uygulamanızdaki gezinme olmayan harita görünümlerinin stil özelliklerini belirlemeye yönelik seçenekler içerir. Gezinme görünümü, koyu modu zorlamayı da destekler. Ekran türü farklılıkları nedeniyle her cihaz aynı şekilde etkilenmeyebilir ancak bazı durumlarda güç tasarrufu potansiyeli sağlar. Yakın zamanda yapılan bir araştırma, bazı ekranlarda koyu mod ile tasarruf edilen güç miktarının, ekranın ne kadar parlak olduğuna bağlı olarak değiştiğini ortaya koydu. Örneğin, koyu mod, tam parlaklığa ayarlanmış ekranlarda daha fazla güç tasarrufu sağlar. Bu, parlaklığı maksimum değerin% 30-50'sine ayarlanmış ekranlara kıyasla daha fazladır. Güç tasarrufu son kullanıcının ekran parlaklığını nasıl ayarladığına 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 Gezinme kullanıcı arayüzünü değiştirme konusuna bakın.

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 bir stil oluşturmak için, seçtiğiniz koyu harita stilini temsil eden JSON stiline sahip bir MapStyleOptions nesnesi kullanın. Eski JSON stilleri, https://mapstyle.withgoogle.com/ adresindeki eski stil düzenleyiciyi kullanarak oluşturulabilir.

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

Cihazdan gönderilen konum güncellemelerinden elde edilen güç kullanımını göz önünde bulundururken aktarımda gönderilen veri miktarı yerine konum güncellemelerinin sıklığına daha fazla odaklanın.

Bu, doğrudan Gezinme SDK'sı üzerinden kontrol edebileceğiniz bir şey değildir ancak Android uygulamanız konum bilgisini bağımsız olarak isterse Android geliştirici dokümanlarındaki Pil İçin Konumu Optimize Etme makalesindeki öneriyi 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ızı eğitme

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

  • Telefonu kilitleyin
  • Navigasyon uygulamasını arka plana alın
  • Mümkünse navigasyonu harita olmadan kullanın.
  • OLED ve AMOLED ekranlar için koyu modu kullanarak veya otomatik parlaklığı etkinleştirerek ekran parlaklığını azaltın
  • Cihazın soğumasını sağlayın
  • Varsa araç içi kablosuz ağa bağlanın
Android'de pil ömrünü uzatmayla ilgili son kullanıcı ö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 açıklandığı üzere bir navigasyon uygulamasının verimliliğini azaltabilecek işlemleri de 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 verileri edinmek genellikle zor veya maliyetli olur. Android Studio'daki Power Profiler 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 için bir performans temel çizgisi 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 mevcuttur. Cihazlarda bu şekilde değişiklik yapmanın garantiyi geçersiz kılabileceğini unutmayın.