Güç ve pil tasarrufu yapın

Anahtar kelimeler: wearos, güç, pil, performans

Güç verimliliği, özellikle Wear OS'te önemlidir. Wear OS tasarım ilkeleri, saat kısa etkileşimler için tasarlanmış küçük bir form faktörü olduğundan cihazın güç kullanımına önemli ölçüde odaklanır.

Wear OS cihazların pilleri, daha büyük mobil cihazlara kıyasla daha küçük olduğundan pil tüketimi daha belirgindir. Ayrıca, kullanıcının Wear OS cihazı şarj etmesi, mobil cihaza kıyasla daha fazla çaba gerektirir. Kullanıcılar mobil cihazlarını gün içinde çeşitli aralıklarla şarj edebilir ancak Wear OS cihazlarını şarj etmeden önce cihazı vücutlarından çıkarmaları gerekir.

Uygulamanızın güç verimliliğini artırmak için aşağıdaki tasarımla ilgili en iyi uygulamaları uygulayın:

  • Uygulamanızın tasarımı, Wear OS form faktöründen iyi şekilde yararlanmalıdır. Doğrudan mobil uygulamanızı kopyalamamalıdır.
  • Belirli kullanım alanlarına yardımcı olmak için mevcut mobil uygulamanızı kullanın. Örneğin, saatte internet ve senkronizasyon pahalıdır. Mobil cihazın ağır işleri yapıp yapamayacağını ve Wear OS cihazın verilerdeki değişiklikleri alıp almayacağını düşünün.
  • Kullanım alanlarınızı daha kısa etkileşimler için tasarlayın.
  • Hangi Wear OS etkinliklerini kullandığınızı ve bu etkinliklerin ne sıklıkta gerçekleştiğini göz önünde bulundurun.
  • Mümkün olduğunda uygulamanızın çalışmasını kol saati şarj olana kadar erteleyin. Bu durum özellikle veri senkronizasyonu ve veritabanlarını düzenleme gibi veri yoğun görevler için geçerlidir.

    Cihaz şarj oluyorsa ve kablosuz bağlantısı varsa kullanıcının uygulamanızda görmek isteyebileceği verileri, resimleri ve güncellemeleri önceden almak için işler planlayın.

Bu güç kılavuzu, sistemin uygulamanızı ne zaman ve nasıl çalıştırdığını, ayrıca uygulamanızın çalışma süresini ve pil tüketimini nasıl sınırlayabileceğinizi anlamanıza yardımcı olur. Uygulama yükleme veya listede gezinme gibi belirli işlemlerin nasıl gerçekleştirildiği hakkında daha fazla bilgi edinmek için Wear OS'te oluşturma performansı kılavuzu gibi performansla ilgili kılavuzları inceleyin.

Zaman içindeki pil kullanımını izleme

Uygulamanızı çalıştıran bir Wear OS cihazın pil istatistiklerini analiz etmek için geliştirme makinenizdeki bir terminal penceresine aşağıdaki komutu girin:

adb shell dumpsys batterystats

GitHub'daki bir kitaplıkta, bu komutla birlikte çalıştırmanın yararlı olabileceği bir pil istatistikleri ayrıştırıcısı bulunur.

Pil ömrünü etkileyen etkinlikler

Uygulamanız hakkında düşünmeden önce, Wear OS cihazında güç tüketen etkinlikler hakkında daha genel bir bakış açısına sahip olmanız gerekir.

Aşağıdaki tabloda, Wear OS uygulamalarındaki çeşitli yaygın etkinliklerin pil ömrünü etkileme derecesi gösterilmektedir. Tam güç tüketimi cihaza göre değişir.

Etkinlik Pil ömrünü etkileme Riskleri azaltma
LTE ve kablosuz ağ dahil olmak üzere ağa erişme Çok yüksek Gerekli olmayan ağ erişimini cihaz şarj olana kadar erteleyin.
Ekranı açıp etkileşimli modu başlatma Yüksek Kullanıcıyı ekranı gerektiğinden daha uzun süre açık tutmaya teşvik etmeyin. Ortam modu olarak da bilinen her zaman açık modunu kullanan bir deneyim sunun.
GPS sensörüne erişim Yüksek Mümkünse kullanıcının GPS erişimi isteğinde bulunmasını bekleyin.
CPU kullanımını yüksek tutma Yüksek Jetpack Compose'u kullanarak akışları tüketin.
Nabız sensörüne erişme Orta Sensör API'sinden geri çağırma alırken (ör. Wear OS'te Sağlık Hizmetleri'ni kullanırken) işlemcinin uyanık zamanını kullanın.
Bluetooth üzerinden başka bir cihaza erişme Orta Oturumları kısa tutun.
Uyandırma kilidini tutma Orta Uyandırma kilitlerinin manuel olarak oluşturulmasını azaltın ve WorkManager kullanın.

Ekran açık kalma süresini en aza indirme

Wear OS uygulamanızda aşağıdaki ekran kullanımı ilkelerini uygulayın:

  • Ekran açıkken kilitleme: Mümkün olduğunca kullanmayın. Test etmek için sistem ayarlarından Her zaman açık ekran'ı kapatın ve ekranın zaman aşımı süresi içinde kapanıp kapanmadığını gözlemleyin.
  • Animasyonlar: Ayrıntılı animasyonları en aza indirin ve daha profesyonel bir görünüm için kısa geçişlere odaklanın. Özellikle uzun süren animasyonlardan ve döngülerden kaçının. Döngü gerekiyorsa döngüler arasına en az animasyonun kendisi kadar uzun bir duraklatma ekleyin.
  • Etrafı aydınlatma modunda açık kalma süresi: Gerekirse her zaman açık kalma özelliğini destekleyin (ör. fitness kullanım alanları). Uygulamanız her zaman açık kalmayı gerektiriyorsa cihaz ortam modundayken uygulamanızın aşağıdakileri yaptığını kontrol edin:

    • Cihazın ekranının aydınlatılmış yüzdesini azaltır.
    • Animasyonlar gösterilmez.
    • onAmbientUpdate() geri araması sırasında hariç olmak üzere ekranın içeriğini güncellemez.

CPU kullanımını en aza indirin

Wear OS uygulamanızda aşağıdaki CPU kullanımı ilkelerini uygulayın:

  • Kullanımı kısa tutun.
  • Uygulamanızın işleminin boşta olduğu süreyi en üst düzeye çıkarmak için ilgili tüm işlemleri toplu olarak gerçekleştirin.

Uyandırma kilitlerini en aza indirin

Çoğu durumda, wakelock gibi uygulamanızın uykuya geçmesini engelleyen işlemlerden kaçının. Örneğin, sağlık ve fitness uygulamalarında uzun süreli antrenmanlar için wakelock'a gerek yoktur. Sensör API'sinden geri çağırma alırken (ör. Wear OS'te Sağlık Hizmetleri'ni kullanırken) işlemcinin uyanık zamanını kullanın.

Uygulamanızın aşağıdakilerden birini yapması gibi durumlarda uyandırıcı kilit elde etmeniz uygundur:

  • Arka planda medya oynatır.
  • WorkManager veya JobScheduler kullanılır. (Sistem, işi arka planda çalıştırırken sizin adınıza bir wakelock tutar.)

Battery Historian, uzun uyanma kilitlerinin tek tek oluşumlarını ve tutulan uyanma kilitlerinin toplam sayısının ve süresinin özetlerini görmenizi sağlar. Uygulamanızın tuttuğu uyandırıcı kilitlerin sayısını ve süresini inceleyin ve bu bilgileri uygulamanızın etkileşimli kullanım kalıplarıyla karşılaştırın:

  • Beklenmedik uyandırıcı kilitleme olup olmadığını kontrol edin.
  • Süre beklenenden uzunsa çalışmanın, ağ kullanılabilirliği gibi bazı bağımlılıklarda engellenip engellenmediğini göz önünde bulundurun.

Uygulamanızın nasıl devre dışı kaldığını inceleme

Aşağıdakiler gibi önemli cihaz etkinlikleri gerçekleştiğinde etkin uygulamanın ne yaptığını göz önünde bulundurun:

  • Ekran kapanır ve cihaz ambiyans moduna girer.
  • Uygulama kaydırarak kapatılır.

Uygulama etkinliğini analiz etmek için aşağıdaki bölümlerde gösterilen araçları kullanın.

Power Profiler

Güçlü Profilleyici'ye Android Studio menüsünde Görünüm > Araç Pencereleri > Profilleyici'yi seçerek erişebilirsiniz:

  1. Ekran kapanırken ve cihaz ortam moduna girerken sistem izlemeyi inceleyin.
  2. Devam eden işlemleri ve cihazın CPU kullanım düzeyini kontrol edin.

Perfetto

Perfetto, ekran kapandığında, cihaz ortam moduna girdiğinde veya kullanıcı uygulamanızın etkinliğini kapattığında herhangi bir iş yapan iş parçacığı olup olmadığını görmek için bir izleme kaydetmenizi ve ardından uygulamanızı incelemenizi sağlar.

Alana özgü etkinlikler de dahil olmak üzere uygulamanızın önemli etkinliklerini işaretlemek için özel etkinlikler tanımlayın. Medya uygulamaları için oynatma listelerini getirme, belirli bir medya öğesini indirme, oynatmayı başlatma ve oynatmayı durdurma gibi görevler bu kapsamdadır. Bu etkinlikleri tanımlayarak Perfetto'da görebilir ve zamanlamalarını uygulamanızın CPU ve güç kullanımıyla karşılaştırabilirsiniz.

Uygulamanızın planlanmış işlerini analiz etme

WorkManager'ı kullanan planlanmış işler, uygulamanızda arka planda çalışma yapmanıza olanak tanır. Bazı arka plan çalışmalarının düzenli olarak yapılması gerekir ancak cihazın pilinin tükenmesine neden olabileceğinden, işleri çok sık veya uzun süre çalıştırmayın.

Planlanmış işlerin yürütülmesini hem genel olarak (Sistem istatistikleri > İş planlayıcı istatistikleri) hem de uygulamaya göre (Uygulama istatistikleri > Planlanmış iş) incelemek için Pil Tarihçisi'ni kullanın. Toplam sayıyı ve toplam süreyi kontrol edin:

  • Bir iş çok sık çalışıyorsa bu sıklığı azaltabilirsiniz.
  • Toplam yürütme süresinin beklediğinizle eşleştiğinden ve önemli ölçüde daha uzun olmadığından emin olun.

Ayrıca, her JobScheduler girişine bakarak Battery Historian grafiğini inceleyin. İşaretçiyi belirli bir girişin üzerine getirdiğinizde, Battery Historian çalışan işin sahibini gösterir. Aşağıdakileri göz önünde bulundurun:

  • Uygulamanız için yürütme süresi mantıklı olmalıdır.
  • Görevlerin, uygulamanız çalışırken mi yoksa dönemsel arka plan çalışması mı olduğunu düşünün.

Sensörler

Wear OS cihazlarda GPS gibi birçok farklı sensör bulunur. Çoğu durumda, doğrudan SensorManager ile etkileşim kurmak yerine Wear OS'teki Sağlık Hizmetleri'ni kullanın. Çoğu durumda Sağlık Hizmetleri, pil performansını artırmak için verileri akıllıca gruplandırır.

Uygulamanızdaki sensör kullanımını analiz etmek için geliştirme makinenizdeki bir terminal penceresinde aşağıdaki komutu çalıştırın:

adb shell dumpsys sensorservice

Bu komutun sonuçlarında aşağıdakiler gösterilir:

  • Mevcut ve önceki sensör kayıtları.
  • Ayarlanmışsa toplu işleme dahil olmak üzere sensör yapılandırması.
  • Yakın zamanda örneklenmiş veriler.

Sensörlerden kayıt silme işlemini test etme

Uygulamanızın sensör verilerini getirmeyi beklendiği gibi durdurup durdurmadığını kontrol etmek için aşağıdaki senaryoları test edin:

  1. Uygulamanızı kaydırarak kapatın.
  2. Avucunuzla ekrana dokunun. Bu işlem, ekranı kapatır veya ambiyans moduna geçirir.

Sensörün kayıtsız olarak doğru şekilde gösterilip gösterilmediğini kontrol etmek için önceki bölümdeki ADB komutunu kullanın.

Veri Katmanı

Data Layer API kullanılırken her aktarım biraz güç kullanır. Özellikle de veri göndermek için bu API'yi kullanıyorsanız uygulamanızın verileri almak için uyanık olması gerekir. Bu nedenle, bu API'yi kullanımınızda dikkatli olun.

Data Layer API'yi kullanmayla ilgili bazı ek en iyi uygulamalar şunlardır:

  • WearableListenerService kullanarak dinleyici oluşturmadan önce uygulamanızın etkinleşmesini bekleyin.
  • Hızlı güncellemeleri yapılandırmak yerine durum değişikliklerini iletin. Bu durum değişiklikleri, Wear OS cihazın yerel veri hesaplamaları yapmasına (ör. egzersiz oturumu başladığında) olanak tanır.

    Yalnızca kullanıcı arayüzünüzü güncelleyen durum değişikliklerini iletin. Örneğin, etkinlik ekranınızda "koşulan kilometreler" değeri yalnızca bir ondalık basamak halinde gösteriliyorsa kullanıcı her bir metre ilerlediğinde Wear OS'e durum değişikliği göndermeyin.

Uygulamanızdaki Veri Katmanı API kullanımını analiz etmek için geliştirme makinenizdeki bir terminal penceresinde aşağıdaki komutu çalıştırın:

adb shell dumpsys activity service WearableService

Bu komutun sonuçları şunlardır:

  • RpcService: MessageClient kullanılarak hangi yolların ne sıklıkta çağrıldığını görmenizi sağlar.
  • DataService: DataClient kullanılarak veri öğelerinin ne sıklıkta ayarlandığını görmenizi sağlar.

Sağlık ve fitness uygulamaları

Sağlık ve fitness uygulaması kullanıyorsanız uygulamanızın sensör kullanımını optimize etmek için Sağlık Hizmetleri'ni kullanın.

  • ExerciseClient için, ambiyans modunda doğru davranışı doğrulamak üzere Pil Geçmişi'ni kullanın. Uygulamanızın, ExerciseUpdate verilerini almak için iki dakikada bir veya daha sık uyanmadığından emin olun.
  • Gün boyu genel sağlık izleme için PassiveMonitoringClient simgesini kullanın. Sağlık ve fitness verilerini arka planda izleme ile ilgili kılavuzda bu simge açıklanmaktadır.

Kartlar ve özellikler

Uygulamanız kart veya komplikasyon destekliyorsa aşağıdaki en iyi uygulamaları izleyin:

  • Otomatik yenilemeyi devre dışı bırakın veya yenileme hızını 2 saat veya daha uzun bir süreye ayarlayın.
  • Veri güncellemeleri göndermek için Firebase Cloud Messaging (FCM) veya uygun şekilde planlanmış işler kullanın. Hızlı güncelleme oranını önlemeye dikkat edin. Bu, sistemin tekrarlanan işleri kullanıcının veya platformun bu işi gerçekleştirmek için gereken verilere erişebildiğinden daha hızlı bir hızda planlamasına neden olabilir.
  • Kullanıcı kartınızla veya komplikasyonunuzla etkileşimde bulunmadığında çalışma planlamayın.
  • Çevrimdışı öncelikli yaklaşımlar kullanın.
  • Ana uygulamanız, kartlarınız ve komplikasyonlarınız arasında tek bir veritabanı paylaşın. Bu, verilerin kullanıcı arayüzü yüzeylerinde de tutarlı kalmasına yardımcı olur.