Güç ve pil tasarrufu yapın

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 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 yazma 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ı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ız yararlı olabilecek 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 Nasıl azaltılır?
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şme 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 zorlukta 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 zorlukta Oturumları kısa tutun.
Uyandırma kilidini tutma Orta zorlukta 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.
  • Ambiyans modunda açık kalma süresi: Gerekirse her zaman açık modunu destekleyin (ör. fitness kullanım alanları için). Uygulamanız için her zaman açık olması gerekiyorsa Ambiyans Modu ile ilgili bu önerileri uygulayın.

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:

  • 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 bir wakelock tutar.)

Battery Historian, uzun wakelock'ların tek tek oluşumlarını ve tutulan wakelock'ların 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 kontrol edin.

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 uygulaması 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. Sağlığım Hizmetleri, çoğu durumda 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 her bir veya iki dakikadan 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, kutuları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.