Güç ve pil tasarrufu yapın

Wear OS'te güç verimliliği özellikle önemlidir. Saat, kısa etkileşimlere yönelik küçük bir form faktörü olduğundan Wear OS tasarım ilkeleri cihaz gücü kullanımına önemli ölçüde odaklanır.

Daha büyük mobil cihazlara kıyasla Wear OS cihazların pilleri daha küçüktür. Bu nedenle, pilin çabuk bitmesi daha çok fark edilir. Dahası, bir mobil cihaza kıyasla Wear OS cihazı şarj etmek için kullanıcının daha fazla çaba sarf etmesi gerekir. Kullanıcılar mobil cihazlarını gün boyunca çeşitli aralıklarla şarj edebilir, ancak şarj etmeden önce Wear OS cihazını vücutlarından çıkarmaları gerekir.

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

  • Uygulamanızın tasarımında Wear OS form faktörü iyi bir şekilde kullanılmalıdır. Mobil uygulamanızı doğrudan kopyalamamalıdır.
  • Belirli kullanım alanlarında yardımcı olması için mevcut mobil uygulamanızı kullanın. Örneğin, internet ve saatteki senkronizasyon pahalıdır. Bu işin büyük kısmını mobil cihazın yapıp yapamayacağını ve Wear OS cihazının veri değişiklikleri alıp almadığını düşünün.
  • Kullanım alanlarınızı daha kısa etkileşimlere göre tasarlayın.
  • Hangi Wear OS etkinliklerini kullandığınızı ve bu etkinliklerin ne sıklıkta gerçekleştiğini düşünün.
  • Mümkün olduğunda uygulamanızın çalışmasını saat şarj olana kadar erteleyin. Bu durum özellikle verileri senkronize etme ve veritabanlarını düzenleme gibi yoğun veri gerektiren görevler için geçerlidir.

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

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

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

Uygulamanızı çalıştıran bir Wear OS cihazını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ı bulunur.

Pil ömrünü etkileyen etkinlikler

Özel olarak uygulamanız hakkında düşünmeden önce, Wear OS cihazda güç tüketen etkinlikler hakkında daha genel bir şekilde düşünmek iyi olacaktır.

Aşağıdaki tabloda, Wear OS uygulamalarındaki bazı yaygın etkinliklerin pil ömrü üzerindeki göreli etkisi gösterilmektedir. Kesin güç tüketimi cihaza göre değişir.

Etkinlik Pil ömrüne etkisi Nasıl azaltılır?
LTE ve kablosuz dahil olmak üzere ağa erişme Çok yüksek Gerekli olmayan ağ erişimini cihaz şarj edilene kadar erteleyin.
Ekranı açın ve etkileşimli modu başlatın Yüksek Kullanıcıyı, ekranı gereğinden fazla süreyle açık tutması için teşvik etmeyin. Ambiyans modu olarak da bilinen her zaman açık modunu kullanan bir deneyim sağlayın.
GPS sensörüne erişme Yüksek Mümkünse, kullanıcı GPS erişimi isteğinde bulunana kadar bekleyin.
CPU kullanımını yüksek tutun Yüksek Jetpack Compose'u kullanarak akışları tüketin.
Nabız sensörüne erişme Ortam Sensör API'sinden geri aramalar alırken (ör. Wear OS'te Sağlık Hizmetleri kullanırken) işlemcinin uyanık kalma süresini kullanın.
Bluetooth üzerinden başka bir cihaza erişme Ortam Oturumları kısa tutun.
Uyanık kalma kilidi tutun Ortam Manuel uyanık kalma kilidi oluşturma sayısını azaltın ve WorkManager kullanın.

Ekran başında kalma süresini en aza indirin

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

  • Ekran kilitleri: Mümkün olduğunda kaçını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 çalışıp çalışmadığını kontrol edin.
  • Animasyonlar: Ayrıntılı animasyonları en aza indirin ve daha profesyonel bir görünüm için bunun yerine kısa geçişlere odaklanın. Özellikle, uzun süre devam eden animasyonlardan ve döngülerden kaçının. Döngü gerekiyorsa döngüler arasına en az animasyonun kendisi kadar bir duraklama ekleyin.
  • Ambiyans modunda uyanık kalma süresi: Gerektiğinde (ör. fitness kullanım alanları için) her zaman açık destek. Uygulamanız her zaman açık olmasını gerektiriyorsa uygulamanızın cihaz ambiyans modundayken aşağıdakileri yaptığından emin olun:

    • Cihaz ekranının aydınlatılma yüzdesini azaltır.
    • Animasyonları göstermez.
    • onAmbientUpdate() geri çağırma işlemi dışında ekranın içeriğini güncellemez.

CPU kullanımını en aza indirme

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

  • Kullanımı kısa tutun.
  • Uygulamanızın boşta kaldığı süreyi en üst düzeye çıkarmak için ilgili tüm işlemleri gruplandırın.

Uyanık kalma kilitlerini en aza indir

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

Uygulamanızın aşağıdakilerden birini yapması gibi bazı durumlarda uyanık kalma kilidi edinebilirsiniz:

  • 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 uyanık kalma kilidi tutar.)

Pil Geçmişi, uzun uyanık kalma kilitlerinin ayrı ayrı oluşumlarının yanı sıra toplam uyanık kalma kilitlerinin sayısı ve süresinin özetlerini de görmenize olanak tanır. Uygulamanızın barındırdığı uyanık kalma kilitlerinin sayısını ve süresini inceleyip bu bilgileri, uygulamanızın etkileşimli kullanım kalıplarıyla karşılaştırın:

  • Beklenmedik uyanık kalma kilitleri olup olmadığını kontrol edin.
  • Süre beklenenden uzunsa işin, ağın kullanılabilirliği gibi bir bağımlılık nedeniyle engellenip engellenmediğini göz önünde bulundurun.

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

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

  • Ekran kapanır ve cihaz ambiyans moduna geçer.
  • Uygulama hızlıca kaydırarak kapatıldı.

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

Enerji Profil Aracı

Enerji Profil Aracı'na Android Studio menüsünden Göster > Araç Pencereleri > Profil Aracı'nı seçerek erişebilirsiniz:

  1. Ekran kapanıp cihaz ambiyans moduna girdiğinde sistem izlemeyi inceleyin.
  2. Devam eden bir çalışmayı ve cihazın CPU kullanım düzeyini arayın.

Perfetto

Perfetto, iz kaydetmenizi ve ardından ekran kapandığında, cihaz ambiyans moduna girdiğinde veya kullanıcı uygulamanızın etkinliğini kapattığında herhangi bir iş parçacığı olup olmadığını görmek için uygulamanızı incelemenize olanak tanır.

Alana özgü etkinlikler de dahil olmak üzere uygulamanızın önemli etkinliklerini işaretlemek için özel etkinlikler tanımlayın. Bir medya uygulaması için bu, oynatma listelerini getirmek, belirli bir medya öğesini indirmek, oynatmayı başlatmak ve oynatmayı durdurmak gibi görevleri içerir. Bu etkinlikleri tanımlayarak bunları 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 edin

WorkManager'ı kullanan programlanmış işler, uygulamanızda arka plan işleri gerçekleştirmenizi sağlar. Bazı arka plan çalışmaları düzenli olmak zorunda olsa da, cihazın pilini tüketebileceği için işleri çok sık veya uzun süre çalıştırmayın.

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

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

Ayrıca, her bir JobScheduler girişine bakarak Pil Geçmişi grafiğini inceleyin. İşaretçiyi belirli bir girişin üzerine getirdiğinizde, Pil Geçmişi yürütülen 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.
  • İşlerin uygulamanız çalışırken mi gerçekleştiğini yoksa işlerin dönemsel arka plan çalışmalarını mı temsil ettiğini düşünün.

Sensörler

Wear OS cihazların GPS gibi birçok farklı sensörü vardır. Çoğu durumda, doğrudan SensorManager ile etkileşimde bulunmak yerine Wear OS'te Sağlık Hizmetleri'ni kullanın. Health Services çoğu durumda pil performansını artırmak için verileri akıllı şekilde gruplandırır.

Uygulamanızda 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ı aşağıdakileri gösterir:

  • Mevcut ve önceki sensör kayıtları.
  • Sensör yapılandırması, ayarlanmışsa gruplandırma dahil.
  • Yakın zamanda örneklenmiş veriler.

Sensörlerden kayıt iptali testi

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

  1. Uygulamanızı hızlıca kaydırarak kapatın.
  2. Ekrana avucunuzla dokunun. Bu işlem ekranı kapatır veya ekran ambiyans moduna geçer.

Sensörün doğru bir şekilde "kayıt dışı" olarak görünüp görünmediğini kontrol etmek için önceki bölümde yer alan ADB komutunu kullanın.

Veri Katmanı

Veri Katmanı API'sı kullanılırken her iletim bir miktar güç kullanı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 diğer en iyi uygulamalardan bazıları şunlardır:

  • WearableListenerService kullanarak işleyici ayarlamadan önce uygulamanızın etkinleşmesini bekleyin.
  • Hızlı güncellemeleri yapılandırmak yerine durum değişikliklerini ilet. Bu durum değişiklikleri, Wear OS cihazının antrenman oturumunun başlaması gibi yerel veri hesaplamaları yapmasına olanak tanır.

    Yalnızca kullanıcı arayüzünüzü güncelleyen durum değişikliklerini iletin. Örneğin, etkinlik ekranınızda yalnızca bir ondalık basamağa kadar "kilometre koşusu" yazıyorsa kullanıcı her metre ileriye hareket ettiğinde Wear OS'e durum değişikliği göndermeyin.

Uygulamanızda Veri Katmanı API'si kullanımını analiz etmek için geliştirme makinenizdeki bir terminal penceresinde şu komutu çalıştırın:

adb shell dumpsys activity service WearableService

Bu komutun sonuçları aşağıdaki gibidir:

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

Sağlık ve Fitness uygulamaları

Bir sağlık ve fitness uygulamanız varsa 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 amacıyla Pil Geçmişi özelliğini kullanın. Uygulamanızın ExerciseUpdate verilerini almak için bir veya iki dakikadan daha sık uyanmadığından emin olun.
  • Tüm gün genel sağlık takibi için arka planda sağlık ve fitness verilerinin nasıl izleneceği ile ilgili kılavuzda açıklandığı gibi PassiveMonitoringClient kullanın.

Kartlar ve özellikler

Uygulamanız bir kutu veya özellikleri 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 süreye yükseltin.
  • Veri güncellemeleri göndermek için Firebase Cloud Messaging (FCM) veya uygun şekilde planlanmış işleri kullanın. Sistemin tekrarlanan işleri, kullanıcı veya platformun bu işi yapmak için gereken verilere erişebileceğinden daha hızlı şekilde programlamasına neden olabilecek şekilde hızlı güncelleme yapmamaya özen gösterin.
  • Kullanıcının etkileşimde bulunmadığı zaman karonuz veya özelliğinizle ilgili işleri planlamayın.
  • Çevrimdışına öncelik veren yaklaşımları kullanın.
  • Ana uygulamanızda, kartlarınızda ve özelliklerinizde tek bir veritabanı paylaşın. Bu, verilerin kullanıcı arayüzü yüzeyleri arasında da tutarlı kalmasına yardımcı olur.