Kadranınız için bellek kullanımını optimize edin

Wear OS, bellek kullanımını izleyerek pil ömrünü uzatır. Saat Kadranı Formatı'nı kullanan kadranlar, Wear OS uygulaması kalite yönergelerinde belirtildiği gibi bellek sınırlarına sahiptir:

  • Ambiyans modu: Maksimum 10 MB bellek kullanımı.
  • Etkileşimli mod: Maksimum bellek kullanımı 100 MB.

Bellek kullanımının hesaplanması

Kadran Biçimi kullanılarak bir kadrandaki resim veya bit eşlem yazı tipinin bellek kullanımını hesaplamak için sistem şunları yapar:

  1. Resmi veya yazı tipini açın.
  2. Aşağıdaki optimizasyonların geçerli olup olmadığını kontrol edin:
    • Ekrana daha iyi sığacak şekilde yeniden boyutlandırma
    • Şeffaf pikselleri kırpma
    • Doğruluk kaybı olmadan RGB565'e alt örnekleme

Elde edilen sınırlayıcı kutuya göre boyut aşağıdaki şekilde hesaplanır:

  • RGBA8888 kullanan resimler ve yazı tipleri için: 4 x genişlik x yükseklik
  • RGB565 kullanan resimler ve yazı tipleri için: 2 x genişlik x yükseklik
  • ALPHA_8 bit eşlem yapılandırmasını kullanan resimler ve yazı tipleri için: genişlik x yükseklik

Etkileşimli mod

Sistem, etkileşimli modun bellek kullanımını hesaplamak için aşağıdaki değerleri toplar:

  1. İşlenmemiş vektör yazı tiplerinin boyutu
  2. Sistemin varsayılan yazı tipinin tahmini kullanımı
  3. Kırpma, yeniden boyutlandırma ve yeniden biçimlendirme uygulandıktan sonra resimlerin ve bit eşlem yazı tiplerinin toplam boyutu

Yapılandırmalar

Yapılandırmaları olan saat yüzlerinde sistem, farklı yapılandırmalardaki saat yüzü kaynaklarının toplam boyutunu hesaplamaya çalışır. Kombinasyon sayısı çok fazlaysa sistem, aynı anda kullanılan kaynak sayısını fazla tahmin edebilir.

Ambiyans modu ve katmanlar

Sistem, ortam modunun en fazla üç tam ekran katman kullandığını ve bunlardan ikisinin statik olduğunu varsayar. Katmanlar şunlardır:

  1. Kadranın arka planı. Arka plan kaç resimden oluşursa oluşsun sistem bunu tek bir resim olarak değerlendirir.
  2. Eller, dijital ekranlar veya dinamik öğeler gibi hareketli parçalar
  3. Kaynak XML dosyasındaki kalan öğeler.

Büyük bit eşlem yazı tipleri, ortam modunda genellikle en fazla belleği kullanır.

Bellek kullanımını azaltma yöntemleri

Bellek kullanımını azaltmak için aşağıdaki optimizasyonları kullanın.

Bit eşlem yazı tiplerini kırpma ve yeniden boyutlandırma

Görüntülerinizi ve BitmapFont nesnelerinizi ekran boyutuna uyacak şekilde kırpın.

Wear OS, saat yüzlerini tüm resimler sıkıştırılmamış şekilde çizer. Çoğunlukla boş olan tam ekran bir resim, diskte 3 KB yer kaplayabilir ancak 450 piksel x 450 piksellik bir ekranda 750 KB veya daha fazla yer kaplayabilir.

Tutarlı bit eşlem yazı tipi yükseklikleri kullanma

BitmapFont kullanırken bir karakterle ilgili tüm resimlerin aynı yüksekliğe sahip olduğundan emin olun. Aynı şekilde, kelimeler için kullanılan tüm resimlerin aynı yükseklikte olduğundan emin olun.

Animasyonlarda tutarlı çerçeve boyutları kullanma

Bir resmi saat yüzünde hareket ettirmek yerine, resimdeki öğeleri güncelleyin ve sınırlayıcı kutu konumunu sabit tutun. Örneğin, saat yüzünüzdeki bir daireyi canlandırmak için yuvarlamak yerine rengini değiştirin.

Bu teknik, animasyonun hesaplanan sınırlayıcı kutusunun boyutunu küçültür.

Resimleri tekilleştirme

Bir resmi birden çok kez göstermek için yalnızca bir resim kaynağı ekleyin ve buna birden çok kez referans verin.

İlerleme durumunu yaylarla gösterme

İlerleme çubuğunun 1 dakika veya 1 saat sonra tamamlanmasını simüle etmek için 60 resim kullanmayın. Uzunluğunu kontrol eden bir ifadeye sahip Arc nesnesi kullanın. Örneğin:

<PartDraw angle="0" width="400" height="400" name="ProgressBar"
    pivotX="0.5" pivotY="0.5" x="25" y="25">
    <Arc centerX="200" centerY="200" width="400" height="400"
        startAngle="0" endAngle="360">
        <!-- Completes a "progress loop" every minute. -->
        <Transform target="endAngle"
            value="0 + (clamp([SECOND], 0, 60) - 0) * 6" />
        <Stroke cap="ROUND" color="#654456" thickness="10" />
    </Arc>
</PartDraw>

Kesikli bir çizgi görüntülemek için (ör. retro dijital saat stili görünüm elde etmek için) Stroke nesnesi için tire özelliği veya yarı şeffaf maske resmi yer paylaşımı kullanın.

Saat kollarını ve özellikleri kaynak dosyanın sonuna yerleştirme

XML düğümleri, kaynak XML'de listelenen sırayla çizilir. Saat ibrelerini ve komplikasyonları sona yerleştirerek sistemin, ortam modu bellek hesaplamasından bir katmanın tamamını çıkarmasını sağlayabilirsiniz.

Kadranınızın bellek kullanımını değerlendirme

Kadranınızın bellek kullanımını ölçmek için GitHub'daki watchface deposunda bulunan bellek ayak izi değerlendirici aracını kullanın.