Arka planda konum kullanımı, pil ömrünü önemli ölçüde etkileyebilir. Android, arka planda konum verisi toplamayı sınırlandırarak geliştiricileri uygulamalarını daha iyi pil verimliliği için optimize etmeye teşvik eder. Bu optimizasyonlar, çalıştırdıkları Android sürümünden bağımsız olarak tüm cihazlar için faydalıdır.
Arka planda konum sınırları ile:
- Arka planda konum toplama işlemi kısıtlanır ve konum, saatte yalnızca birkaç kez hesaplanıp gönderilir.
- Kablosuz ağ taramaları daha az sıklıkta yapılır ve cihaz aynı statik erişim noktasına bağlı kaldığında konum güncellemeleri hesaplanmaz.
- Coğrafi sınır çizme yanıt süresi, onlarca saniyeden yaklaşık iki dakikaya değişir. Bu değişiklik, pil performansını artırır. Bazı cihazlarda 10 kata kadar daha iyi performans elde edilebilir.
Gerekli bilgiler
Bu dokümanda, aşağıdaki API'leri bildiğiniz varsayılır:
- Google Konum Hizmetleri. Bu API'ler, çerçeve konum API'lerine kıyasla daha yüksek doğruluk sunar ve pili daha az tüketir.
- Çok Kaynaklı Konum Sağlayıcı. Bu API; GPS, kablosuz ağlar ve hücresel ağların yanı sıra ivme ölçer, jiroskop, manyetometre ve diğer sensörlerden gelen sinyalleri birleştirir.
- Coğrafi sınır çizme: Bu API, Fused Location Provider API üzerine kurulmuştur ve pil performansı için optimize edilmiştir.
Pilin hızlı tükenmesi sorununu anlama
Konum toplama ve pil tüketimi arasındaki ilişki şu şekildedir:
- Doğruluk: Konum verilerinin kesinliği. Genel olarak, doğruluk ne kadar yüksekse pil tüketimi de o kadar yüksek olur.
- Sıklık: Konumun ne sıklıkta hesaplandığı. Konum ne kadar sık hesaplanırsa o kadar fazla pil kullanılır.
- Gecikme: Konum verilerinin ne kadar hızlı iletildiği. Daha az gecikme genellikle daha fazla pil gerektirir.
Doğruluk
setPriority() yöntemini kullanarak konum doğruluğunu belirtebilir ve aşağıdaki değerlerden birini bağımsız değişken olarak iletebilirsiniz:
PRIORITY_HIGH_ACCURACY, mümkün olan en doğru konumu sağlar. Bu konum, gerektiği kadar giriş kullanılarak hesaplanır (GPS, kablosuz ve hücreyi etkinleştirir ve çeşitli sensörler kullanır) ve önemli ölçüde pil tüketimine neden olabilir.PRIORITY_BALANCED_POWER_ACCURACY, güç optimizasyonu yaparken doğru konum bilgisi sağlar. GPS'i çok nadiren kullanır. Cihaz konumunu hesaplamak için genellikle kablosuz ağ ve hücre bilgilerini birlikte kullanır.PRIORITY_LOW_POWER, büyük ölçüde baz istasyonlarını kullanır, GPS ve kablosuz ağ girişlerinden kaçınır. Böylece minimum pil tüketimiyle yaklaşık (şehir düzeyinde) doğruluk sağlar.PRIORITY_PASSIVE, konumun zaten hesaplandığı diğer uygulamalardan pasif olarak konum bilgisi alır.
Çoğu uygulamanın konum ihtiyaçlarını karşılamak için dengeli güç veya düşük güç seçeneklerini kullanın. Yüksek doğruluk ayarını, ön planda çalışan ve gerçek zamanlı konum güncellemeleri gerektiren uygulamalar (ör. harita uygulaması) için kullanın.
Sıklık
Konum sıklığını iki yöntemle belirtebilirsiniz:
- Uygulamanızın konumunu hesaplama aralığını belirtmek için
setIntervalMillis()yöntemini kullanın. - Diğer uygulamaların konumlarını alma aralığını belirtmek için
setMinUpdateIntervalMillis()yöntemini kullanın.
setIntervalMillis() kullanırken mümkün olan en büyük değeri iletin. Bu durum, özellikle arka planda konum bilgisi toplama işlemi için geçerlidir. Bu işlem genellikle pili tüketir. Ön plan kullanım alanları için birkaç saniyelik aralıklar ayırın.
Android 8.0'da (API düzeyi 26) kullanıma sunulan arka plan konum sınırları bu stratejileri zorunlu kılar ancak uygulamanız, Android 7.0 (API düzeyi 24) ve önceki sürümleri çalıştıran cihazlarda bu stratejileri zorunlu kılmaya çalışmalıdır.
Gecikme
Gecikmeyi setMaxUpdateDelayMillis() yöntemini kullanarak belirtebilirsiniz. Genellikle setIntervalMillis() yönteminde belirtilen aralıktan birkaç kat daha büyük bir değer iletilir. Bu ayar, konum yayınını geciktirir ve birden fazla konum güncellemesi gruplar halinde yayınlanabilir.
Bu iki değişiklik, pil tüketimini en aza indirmeye yardımcı olur.
Uygulamanızın hemen konum güncellemesine ihtiyacı yoksa setMaxUpdateDelayMillis() yöntemine mümkün olan en büyük değeri iletmeniz gerekir. Böylece, daha fazla veri ve pil verimliliği için gecikme süresini etkili bir şekilde kullanabilirsiniz.
Uygulamalar, coğrafi sınırları kullanırken güç tasarrufu yapmak için setNotificationResponsiveness() yöntemine büyük bir değer iletmelidir. Beş dakika veya daha uzun bir süre önerilir.
Daha fazla bilgi
Daha fazla bilgi için aşağıdaki belgelere bakın:
- Öneriler: Bu kılavuzda, uygulamanızın pil ömrü üzerindeki etkisini iyileştirmek için kullanabileceğiniz bazı somut öneriler yer almaktadır.
- Kullanım alanları: Bu kılavuzda, konum hizmetlerini kullanabileceğiniz birkaç yaygın kullanım alanı ve bu durumlarda pil ömrü üzerindeki etkiyi nasıl optimize edebileceğiniz açıklanmaktadır.