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ş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ı 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ş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 süresini 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ılavuzlara (ör. Wear OS'te Oluşturma performans kılavuzu) bakın.
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ş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 | 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 | 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 kilitleri: Mümkün olduğunda kullanmaktan 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 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 olmasını gerektiriyorsa cihaz ambiyans modu'ndayken uygulamanızın aşağıdakileri yaptığından emin olun:
- Cihazın ekranının aydınlatılmış yüzdesini azaltır.
- Animasyonları göstermez.
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.
Uyanık kalma kilitlerini en aza indir
Ç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
veyaJobScheduler
kullanı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 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ğ 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.
Güç Profil Aracı
Güçlü Profilleyici'ye Android Studio menüsünde Görünüm > Araç Pencereleri > Profilleyici'yi seçerek erişebilirsiniz:
- Ekran kapanırken ve cihaz ortam moduna girerken sistem izlemeyi inceleyin.
- 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 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 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ığı 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 ü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 cihazların GPS gibi birçok farklı sensörü vardır. Ç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ı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ı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:
- Uygulamanızı kaydırarak kapatın.
- 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ırken 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 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ö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ınExerciseUpdate
verilerini almak için her dakika 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.
Fayanslar ve komplikasyonlar
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 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ş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 özellikleriniz genelinde tek bir veritabanı paylaşın. Bu, verilerin kullanıcı arayüzü yüzeylerinde tutarlı kalmasına da yardımcı olur.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Arka planda konum bilgisine erişme
- Alarmları planlama
- Gelişmiş widget oluşturma {:#advanced-widget}