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 yayınlanır.
- 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ğ 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ı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 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 düşük gecikme süresi genellikle daha fazla pil gerektirir.
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
setIntervalMillis()
yöntemini kullanın. - Diğer uygulamaların konumlarını alma aralığını belirtmek için
setMinUpdateIntervalMillis()
yöntemini kullanın.
setIntervalMillis()
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
setMaxUpdateDelayMillis()
yöntemini kullanarak gecikmeyi belirtebilirsiniz. Genellikle setIntervalMillis()
yönteminde belirtilen aralıktan birkaç kat daha büyük bir değer iletebilirsiniz. Bu ayar, konum yayınlamayı geciktirir ve birden fazla konum güncellemesi grup hâlinde 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, gecikme karşılığında daha fazla veri ve pil verimliliği elde edersiniz.
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.