Güç ve pil tasarrufu yapın

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

Wear OS cihazların pilleri, büyük mobil cihazlara kıyasla daha küçüktür. Bu nedenle, pilin hızlı tükenmesi daha fazla fark edilir. Dahası, kullanıcının Wear OS cihazları şarj etmek, mobil cihazlara kıyasla daha fazla çaba gerektirdiğini gösterir. Kullanıcılar mobil cihazlarını gün boyunca çeşitli aralıklarla şarj edebiliyor olsa da, cihazı şarj etmeden önce bir Wear OS cihazını vücudundan çıkarması gerekir.

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

  • Uygulamanızın tasarımında Wear OS form faktörü iyi kullanılmalıdır. Doğrudan mobil uygulamanızı kopyalamamalıdır.
  • Belirli kullanım alanlarında yardımcı olması için mevcut mobil uygulamanızı kullanın. Örneğin, saatteki internet ve senkronizasyon ücretlidir. İşin ağır işleri mobil cihazın yapabildiğini ve Wear OS cihazın verilerde değişiklikler aldığı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, özellikle verileri senkronize etme 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şleri 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 zamanını ve pil tüketimini nasıl sınırlayabileceğinizi anlamanıza yardımcı olur. Uygulama yükleme veya bir listeyi kaydırma gibi belirli işlemlerin nasıl yapıldığı hakkında daha fazla bilgi edinmek için performansla ilgili kılavuzu inceleyin (ör. Wear OS'te Oluşturma performans kılavuzu).

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ık, bu komutla birlikte çalıştırılması yararlı olabilecek bir pil istatistikleri ayrıştırıcı içerir.

Pil ömrünü etkileyen etkinlikler

Özel olarak uygulamanızı düşünmeden önce, daha genel bir şekilde Wear OS cihazda güç tüketen etkinlikleri ele almakta fayda vardır.

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

Etkinlik Pil ömrüne etkisi Riski azaltma
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çıp etkileşimli modu başlatın Yüksek Kullanıcıyı, ekranı gerekenden daha uzun süre açık tutmaya teşvik etmeyin. Her zaman açık mod (Ambiyans modu olarak da bilinir) 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 tut Yüksek Akışları Jetpack Compose'u kullanarak kullanın.
Nabız sensörüne erişme Ortam Sensör API'sinden geri çağırmalar alırken (ör. Wear OS'te Sağlık Hizmetleri'ni kullanırken) işlemcinin uyanık olduğu süreyi kullanın.
Bluetooth üzerinden başka bir cihaza erişme Ortam Oturumları kısa tutun.
Uyanık kalma kilidini tut Ortam Manuel uyanık kalma kilitleri oluşturma oranı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 kullanmaktan kaçının. Test etmek için sistem ayarlarında Her zaman açık ekran'ı kapatın ve zaman aşımı süresi içinde ekranın kapanıp kapanmadığına bakın.
  • 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üreli animasyon ve döngülerden kaçının. Döngü gerekliyse döngüler arasına en az animasyonun uzunluğunda bir duraklama ekleyin.
  • Ambiyans modunda uyanık kalma süresi: Fitness kullanım alanları gibi durumlarda her zaman etkin desteği sağlayın. Uygulamanız her zaman açık olmasını gerektiriyorsa cihaz ambiyans modu'ndayken uygulamanızın aşağıdakileri yaptığından emin olun:

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

CPU kullanımını en aza indir

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 işlemleri toplu olarak yapın.

Uyanık kalma kilitlerini en aza indir

Çoğu durumda, uyanık kalma kilitleri gibi uygulamanızın uyku moduna geçmesini engelleyen işlemlerden kaçının. Örneğin, sağlık ve fitness uygulamalarında uzun süreli antrenmanlar için uyanık kalma kilidine gerek yoktur. Sensör API'sinden geri çağırmalar alırken (ör. Wear OS'te Sağlık Hizmetleri'ni kullanırken) işlemcinin uyanık olduğu süreyi 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. (İşi arka planda çalıştırırken sistem sizin adınıza bir uyanık kalma kilidi tutar.)

Pil Geçmişi, uzun uyanık kalma kilitlerinin toplam sayısının yanı sıra tutulmakta olan uyanık kalma kilitlerinin toplam sayısı ve süresinin özetlerini görmenize olanak tanır. Uygulamanızın tuttuğu uyanık kalma kilitlerinin 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:

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

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 girer.
  • Uygulama kaydırarak kapatılabilir.

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örünüm > Araç Pencereleri > Profil Aracı'nı seçerek erişebilirsiniz:

  1. Ekran kapanıp cihaz ambiyans moduna girerken sistem izini inceleyin.
  2. Devam eden çalışmalar ve cihazın CPU kullanım düzeyi olup olmadığına bakın.

Perfetto

Perfetto, bir 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ş yapan iş parçacığı olup olmadığını görmek amacıyla 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. Medya uygulamaları için bu, oynatma listelerini getirme, belirli bir medya öğesini indirme, oynatmayı başlatma ve oynatmayı durdurma gibi görevleri içerir. Bu etkinlikleri tanımlayarak Perfetto'da görebilir, 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 planlı işler, uygulamanızda arka plan çalışmaları gerçekleştirmenizi sağlar. Bazı arka plan işleri periyodik olarak yapılması gerekse de, cihazın pilini bitirebileceği için işleri çok sık ya da uzun süre çalıştırmayın.

Planlanmış İşlerin hem genel olarak (Sistem istatistikleri > İş planlayıcı istatistikleri) hem de uygulamaya göre (Uygulama istatistikleri > Planlanmış iş) yürütülmesini incelemek için Pil Geçmişi'ni 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 aynı olduğundan ve çok daha uzun olmadığından emin olun.

Ayrıca, her JobScheduler girişine bakarak Pil Geçmişi grafiğini inceleyin. İşaretçiyi belirli bir girişin üzerinde tuttuğunuzda Battery Historian yürütme işinin sahibini gösterir. Aşağıdakileri göz önünde bulundurun:

  • Uygulamanızda yürütme süresi anlamlı olmalıdır.
  • İşlerin uygulamanız çalışırken mi gerçekleşeceğini yoksa görevlerin arka planda düzenli aralıklarla mı gerçekleştirildiğ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. Sağlık Hizmetleri, birçok durumda pil performansını iyileştirmek için verileri akıllı bir ş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ı.
  • Ayarlanırsa gruplama da dahil olmak üzere sensör yapılandırması.
  • Yakın zamanda örneklenmiş veriler.

Sensörlerden kaydın iptalini test edin

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ı hızlıca kaydırarak kapatın.
  2. Avuç içinizle ekrana dokunun. Bu işlem ekranı kapatır ya da ambiyans moduna sokar.

Sensörün doğru şekilde kaydedilmemiş 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'si kullanılırken her iletim bir miktar güç tüketir. Özellikle, veri göndermek için bu API'yi kullanıyorsanız uygulamanızın verileri alması için uyanması gerekir. Bu nedenle, bu API'yi kullanırken dikkatli olun.

Veri Katmanı API'sini kullanmak için diğer en iyi uygulamalardan bazıları şunlardır:

  • WearableListenerService kullanarak bir dinleyici ayarlamadan önce uygulamanız etkin olana kadar bekleyin.
  • Hızlı güncellemeleri yapılandırmak yerine durum değişikliklerini iletin. Bu durum değişiklikleri, Wear OS cihazının bir 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 basamakla "kilometre koştu" mesajı gösteriliyorsa kullanıcı her metre ileri hareket ettiğinde Wear OS'e durum değişikliği göndermeyin.

Uygulamanızdaki Data 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ı aşağıdakileri içerir:

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

Sağlık ve fitness uygulamaları

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 cihazında, ambiyans modunda doğru çalışma biçimini doğrulamak için Pil Geçmişi'ni kullanın. Uygulamanızın ExerciseUpdate verilerini almak için her dakika bir veya iki dakikadan daha sık uyanmadığından emin olun.
  • Tüm gün boyunca genel sağlık takibi için sağlık ve fitness verilerini arka planda izleme ile ilgili rehberde açıklandığı gibi PassiveMonitoringClient kullanın.

Fayanslar ve komplikasyonlar

Uygulamanız bir kartı 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 olacak şekilde artırın.
  • Veri güncellemeleri göndermek için Firebase Cloud Messaging (FCM) veya uygun şekilde planlanmış işleri kullanın. Güncellemelerin hızlı bir şekilde ilerlemesini önlemeye özen gösterin. Bu durum, sistemin, tekrarlanan işleri kullanıcı veya platformun söz konusu işi yapmak için gereken verilere erişebileceğinden daha yüksek bir hızda planlamasına neden olabilir.
  • Kullanıcı etkileşime girmiyorken karonuz veya özelliğinizle ilgili çalışma planlamayın.
  • Çevrimdışı öncelikli yaklaşımları kullanın.
  • Ana uygulamanız, kartlarınız ve özellikleriniz genelinde tek bir veritabanı paylaşın. Bu, verilerin kullanıcı arayüzü yüzeylerinde tutarlı kalmasına da yardımcı olur.