Arka planda konum kullanımı, pil ömrünü önemli ölçüde etkileyebilir. Android, arka planda konum toplama ile ilgili sınırlamaları destekler. Bu da geliştiricilerin uygulamalarını daha iyi pil verimliliği için optimize etmelerini sağlar. 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 sınırlanır, konum hesaplanır ve saatte yalnızca birkaç kez gönderilir.
- Kablosuz ağ taramaları daha muhafazakardır ve cihaz aynı statik erişim noktasına bağlı kaldığında konum güncellemeleri hesaplanmaz.
- Coğrafi sınırlama yanıt vermesi on saniyeden yaklaşık iki dakikaya çıkar. Bu değişiklik, pil performansını iyileştirir. Bazı cihazlarda bu artış 10 kata kadar çıkabilir.
Gerekli bilgi düzeyi
Bu dokümanda, aşağıdaki API'lerle ilgili bilgi sahibi olduğunuz varsayılmaktadır:
- Google Konum Hizmetleri Bu API'ler, çerçeve konum API'lerine kıyasla daha yüksek doğruluk sunar ve daha az pil tüketir.
- Çok Kaynaklı Konum Sağlayıcı. Bu API; GPS, kablosuz ağlar ve hücresel ağlardan gelen sinyallerin yanı sıra ivme ölçer, jiroskop, manyetometre ve diğer sensörlerden gelen sinyalleri birleştirir.
- Coğrafi sınırlama: Bu API, Fused Location Provider API'nin üzerine inşa edilmiş ve pil performansı için optimize edilmiştir.
Pilin hızlı tükenmesini anlama
Konum bilgisi toplama ve pil tüketimi aşağıdaki şekilde ilişkilidir:
- Doğruluk: Konum verilerinin hassasiyeti. Genel olarak, doğruluk ne kadar yüksek olursa 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ğini belirtir. Daha az gecikme için genellikle daha fazla pil gerekir.
Doğruluk
setPriority()
yöntemini kullanarak konum doğruluğunu belirtebilir ve bağımsız değişken olarak aşağıdaki değerlerden birini 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 bağlantı ve hücresel bağlantıyı etkinleştirir ve çeşitli sensörleri kullanır) ve önemli ölçüde pil tüketimine neden olabilir.PRIORITY_BALANCED_POWER_ACCURACY
, güç için optimizasyon yaparken doğru konum bilgisi sağlar. GPS'i çok nadiren kullanır. Genellikle cihaz konumunu hesaplamak için kablosuz ve hücresel bilgilerin bir kombinasyonunu kullanır.PRIORITY_LOW_POWER
, büyük ölçüde baz istasyonlarına dayanır ve GPS ile kablosuz girişlerden kaçınır. Böylece, minimum pil tüketimi ile kaba (şehir düzeyinde) doğruluk sağlar.PRIORITY_NO_POWER
, konumu önceden hesaplanmış olan konumları diğer uygulamalardan pasif olarak alır.
Çoğu uygulamanın konum ihtiyaçlarını karşılamak için dengeli güç veya düşük güç seçeneklerini kullanın. Ön planda çalışan ve anlık konum güncellemeleri gerektiren uygulamalar (ör. harita uygulaması) için yüksek doğruluk rezervasyonu yapın.
Sıklık
Konum sıklığını iki yöntemle belirtebilirsiniz:
- Uygulamanızın konumunu hesaplama aralığını belirtmek için
setinterval()
yöntemini kullanın. - Diğer uygulamaların konumlarını alma aralığını belirtmek için
setFastestInterval()
yöntemini kullanın.
setInterval()
kullanılırken mümkün olan en büyük değeri iletin. Bu durum özellikle genellikle pili tüketen arka planda konum toplama için geçerlidir. Ön plan kullanım alanları için birkaç saniyelik aralıklar ayırın.
Android 8.0 (API seviyesi 26) sürümünde kullanıma sunulan arka plan konum sınırlamaları bu stratejileri zorunlu kılar ancak uygulamanız, Android 7.0 (API seviyesi 24) ve önceki sürümleri çalıştıran cihazlarda da bu stratejileri zorunlu kılmaya çalışmalıdır.
Yanıt gecikti
Gecikmeyi setMaxWaitTime()
yöntemini kullanarak belirtebilirsiniz. Genellikle setInterval()
yönteminde belirtilen aralıktan birkaç kat daha büyük bir değer gönderirsiniz. Bu ayar, konumun teslimini geciktirir ve birden fazla konum güncellemesi toplu olarak gönderilebilir. Bu iki değişiklik, pil tüketimini en aza indirmeye yardımcı olur.
Uygulamanızın hemen konum güncellemesine ihtiyacı yoksa setMaxWaitTime()
yöntemine mümkün olan en büyük değeri iletmeniz gerekir. Böylece gecikmeyi daha fazla veri ve pil verimliliğiyle takas etmiş olursunuz.
Uygulamalar, coğrafi çitleri kullanırken güç tasarrufu sağlamak için setNotificationResponsiveness()
yöntemine büyük bir değer iletmelidir. Beş dakika veya daha uzun bir değer önerilir.
Daha fazla bilgi
Daha fazla bilgi için aşağıdaki dokümanlara bakın:
- Öneriler: Bu kılavuzda, uygulamanızın pil ömrü üzerindeki etkisini iyileştirmek için kullanabileceğiniz bazı önerilen işlemler açıklanmaktadır.
- Kullanım alanları: Bu kılavuzda, konum hizmetlerini kullanabileceğiniz ve bu durumlarda pil ömrünü nasıl optimize edebileceğinizle ilgili çeşitli yaygın kullanım alanları sunulmaktadır.