Güç ve pil tasarrufu yapın

Güç verimliliği, Wear OS'te özellikle önemlidir. Wear OS tasarım ilkeleri, saatin küçük boyutlu ve kısa etkileşimler için tasarlanmış bir cihaz olmasından dolayı cihazın güç kullanımına büyük ölçüde odaklanır.

Wear OS cihazların pilleri, daha büyük mobil cihazlara kıyasla daha küçüktür. Bu nedenle, pil tüketimi daha belirgindir. Ayrıca, Wear OS cihazları şarj etmek mobil cihazlara 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 vücutlarından çıkarmaları gerekir.

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

  • Uygulamanızın tasarımı, Wear OS form faktöründen iyi şekilde yararlanmalıdır. Mobil uygulamanızı doğrudan kopyalamamalıdır.
  • Belirli kullanım alanlarında yardımcı olması için mevcut mobil uygulamanızı kullanma Örneğin, kol saatinde internet ve senkronizasyon pahalıdır. Ağır işlerin mobil cihaz tarafından yapılıp yapılamayacağını ve Wear OS cihazın verilerdeki değişiklikleri alıp almadığını göz önünde bulundurun.
  • 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 işlemlerini 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 getirmek için işler planlayın.

Bu güç kılavuzu, sistemin uygulamanızı ne zaman ve nasıl çalıştırdığını, 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 performansla ilgili kılavuzları (ör. Wear OS'te Oluşturma performans kılavuzu) inceleyin.

Zaman içinde 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ırılması yararlı olabilecek bir pil istatistikleri ayrıştırıcısı bulunur.

Pil ömrünü etkileyen etkinlikler

Uygulamanız hakkında özel olarak düşünmeden önce, Wear OS cihazlarda güç tüketen etkinlikler hakkında daha genel olarak düşünmek faydalı olacaktır.

Aşağıdaki tabloda, Wear OS uygulamalarındaki çeşitli yaygın etkinliklerin pil ömrü üzerindeki göreceli etkisi gösterilmektedir. Tam güç tüketimi cihazlar arasında değişiklik gösterir.

Etkinlik Pil ömrüne etkisi Nasıl azaltılır?
LTE ve kablosuz ağ dahil olmak üzere ağa erişme Çok yüksek Cihaz şarj olana kadar gerekli olmayan ağ erişimini erteleyin.
Ekranı açma ve etkileşimli modu başlatma Yüksek Kullanıcıyı ekranı gerekenden daha uzun süre açık tutmaya teşvik etmeyin. Ambiyans modu olarak da bilinen her zaman açık modunu kullanan bir deneyim sunun.
GPS sensörüne erişme Yüksek Mümkünse kullanıcı GPS erişimi isteyene kadar bekleyin.
CPU kullanımını yüksek tutma Yüksek Jetpack Compose'u kullanarak akışları kullanma
Nabız sensörüne erişme Orta Sensör API'sinden geri çağırmalar alırken işlemcinin uyanık kalma süresini kullanın. Örneğin, Wear OS'te Sağlık Hizmetleri'ni kullanırken bu süreye ihtiyaç duyulur.
Bluetooth üzerinden başka bir cihaza erişme Orta Oturumları kısa tutun.
Uyanık kalma kilidi tutma Orta Wakelock'ların manuel olarak oluşturulmasını azaltın ve WorkManager kullanın.

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

Wear OS uygulamanızda şu ekran kullanımı ilkelerini uygulayın:

  • Ekran açıkken kilitler: Mümkün olduğunca kaçının. Test etmek için sistem ayarlarında 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 animasyonun kendisi kadar uzun bir duraklatma ekleyin.
  • Ambiyans modunda uyanık kalma süresi: Fitness kullanım alanları gibi durumlarda gerekirse her zaman açık özelliğini destekleyin. Uygulamanız her zaman açık ekran gerektiriyorsa Ambiyans moduyla ilgili bu önerileri uygulayın.

CPU kullanımını en aza indirme

Wear OS uygulamanızda aşağıdaki CPU kullanımı ilkelerine uyun:

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

Uyanık kalma kilitlerini en aza indirme

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

Uygulamanız aşağıdakilerden birini yaptığında uyandırma kilidi edinmenin sorun olmadığı bazı durumlar vardır:

  • Medya içeriğini arka planda oynatır.
  • WorkManager veya JobScheduler kullanılır. (Sistem, işi arka planda çalıştırırken sizin adınıza uyandırma kilidi tutar.)

Uyanık kalma kilitlerinde yerel olarak hata ayıklamak için Android Studio'nun Background Task Inspector, sistem izleme veya adb shell dumpsys batterystats aracını kullanarak uzun uyanık kalma kilitlerinin her birini ve tutulan uyanık kalma kilitlerinin toplam sayısı ile süresinin özetlerini inceleyin. Uygulamanızın tuttuğu uyanık kalma kilitlerinin sayısını ve süresini, uygulamanızın etkileşimli kullanım kalıplarıyla karşılaştırın:

  • Beklenmedik uyanık kalma kilitlerini kontrol edin.
  • Süre beklenenden uzunsa çalışmanın ağın kullanılabilirliği gibi bir bağımlılık nedeniyle engellenip engellenmediğini kontrol edin.

Uygulamanızın nasıl etkin olmayan duruma geçtiğini inceleme

Önemli cihaz etkinlikleri gerçekleştiğinde etkin uygulamanın ne yaptığını göz önünde bulundurun. Örneğin:

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

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

Power Profiler

Power Profiler'a Android Studio menüsünde View > Tool Windows > Profiler (Görünüm > Araç Pencereleri > Profil Oluşturucu) seçilerek erişilebilir:

  1. Ekran kapandığında ve cihaz ambiyans moduna girdiğinde sistem izini inceleyin.
  2. Devam eden işleri ve cihazın CPU kullanım düzeyini kontrol edin.

Perfetto

Perfetto, iz kaydı yapmanıza ve ardından ekran kapandığında, cihaz ambiyans 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 uygulamanızı incelemenize olanak tanır.

Uygulamanızın önemli etkinliklerini (alana özgü etkinlikler dahil) 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 buna dahildir. Bu etkinlikleri tanımlayarak Perfetto'da görebilir ve zamanlamalarını uygulamanızın CPU ve güç kullanımıyla karşılaştırabilirsiniz.

Yapay zeka aracılarının komut satırından Perfetto sistem izlerini kaydetmesine ve güç raylarını, uyanık kalma kilitlerini ve cihaz askıya alma durumlarını analiz etmesine olanak tanıyan android-profiler becerisini (android skills add android-profiler) yüklemek için Android KSA'yı da kullanabilirsiniz.

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

WorkManager'ı kullanan planlanmış işler, uygulamanızda arka plan işleri gerçekleştirmenize olanak tanır. Bazı arka plan işlerinin düzenli olması gerekse de işleri çok sık veya uzun süre çalıştırmayın. Bu, cihazın pilini tüketebilir.

Android Studio'nun Arka Plan Görevi Denetleyicisi'ni (Görünüm > Araç Pencereleri > Uygulama Denetimi) kullanın veya planlanmış işlerin ve çalışanların yürütülmesini incelemek için adb shell dumpsys jobscheduler ve adb shell dumpsys batterystats komutlarını çalıştırın. Yürütme sıklığını ve toplam süreyi kontrol edin:

  • Bir iş çok sık çalıştırılıyorsa bu sıklığı azaltmayı düşünebilirsiniz.
  • Toplam yürütme süresinin beklediğiniz gibi olduğundan ve önemli ölçüde daha uzun olmadığından emin olun.

İş yürütmeyi bir zaman çizelgesi üzerinden uygulamanızın etkinliğiyle ilişkilendirmek için sistem izleme de kaydedebilirsiniz. Aşağıdakileri göz önünde bulundurun:

  • Uygulamanız için yürütme süresi mantıklı olmalıdır.
  • İşlerin uygulamanız çalışırken mi yoksa dönemsel arka plan çalışması olarak mı gerçekleştiğini göz önünde bulundurun.

Sensörler

Wear OS cihazlarda GPS gibi birçok farklı sensör bulunur. Çoğu durumda, SensorManager ile doğrudan etkileşim kurmak yerine Wear OS'te Sağlık Hizmetleri'ni kullanın. Çoğu durumda, Sağlık Hizmetleri pil performansını artırmak için verileri akıllı bir şekilde 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ı şunları gösterir:

  • 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 kaydı silme işlemini test etme

Uygulamanızın sensör verilerini almayı 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 ekranı 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ımda bir miktar güç harcanır. Özellikle, veri göndermek için bu API'yi kullanıyorsanız uygulamanızın verileri almak için uyanması gerekir. Bu nedenle, bu API'yi kullanırken dikkatli olun.

Veri katmanı API'sini kullanmayla ilgili bazı ek en iyi uygulamalar şunlardır:

  • WearableListenerService kullanarak bir dinleyici ayarlamadan önce uygulamanızın etkin olmasını bekleyin.
  • Bir ikincil cihazın veya uygulamanın kullanılabilir olup olmadığını kontrol etmek için Data Layer API'yi kullanarak saate düzenli olarak ping göndermeyin. Uygulamanız, tekrar tekrar mesaj göndererek radyoyu ve uzaktan uygulama sürecini uyandırır. Bu durum, cihazın pilinin gereğinden daha fazla tükenmesine neden olur. Bunun yerine, CapabilityClient kullanarak cihazın kullanılabilirliğini ve özelliklerini algılayın veya yalnızca durum değiştiğinde mesaj gönderin.
  • 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ı (ör. antrenman oturumunun ne zaman başladığı) yapmasına olanak tanır.

    Yalnızca kullanıcı arayüzünüzü güncelleyen durum değişikliklerini iletin. Örneğin, aktivite ekranınızda yalnızca "koşulan kilometre" değeri bir ondalık basamakla 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ı şunları içerir:

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

Sağlık ve fitness uygulamaları

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

  • ExerciseClient için sistem izleme, Perfetto veya adb shell dumpsys batterystats kullanarak ambiyans modunda doğru davranışı doğrulayın. Uygulamanızın ExerciseUpdate verilerini almak için bir veya iki dakikada birden daha sık uyanmadığından emin olun.
  • Tüm gün genel sağlık izleme için sağlık ve fitness verilerini arka planda izleme ile ilgili kılavuzda açıklandığı şekilde PassiveMonitoringClient kullanın.

Kartlar ve komplikasyonlar

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

  • Otomatik yenilemeyi devre dışı bırakın veya yenileme hızını 2 saat ya da daha uzun bir süreye çıkarın.
  • Veri güncellemelerini göndermek için Firebase Cloud Messaging (FCM) veya uygun şekilde planlanmış işler kullanın. Güncellemelerin hızlı bir şekilde yapılmasını önlemeye dikkat edin. Bu durum, sistemin tekrarlanan işleri, kullanıcının veya platformun bu işi gerçekleştirmek için gereken verilere erişebileceğinden daha hızlı bir şekilde planlamasına neden olabilir.
  • Kullanıcı etkileşimde bulunmadığında kartınız veya komplikasyonunuz için çalışma planlamayın.
  • Önce çevrimdışı yaklaşımlarını 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 tutarlı kalmasına da yardımcı olur.