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

Wear OS, bellek kullanımını izleyerek pil ömrünü iyileştirir. Saat Kadranı Formatı'nı kullanan kadranlar, Wear OS uygulaması kalite yönergelerine göre bellek sınırlamalarına sahiptir:

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

Bellek kullanımı hesaplaması

Sistem, kadran biçimini kullanarak kadrandaki bir resim veya bitmap yazı tipinin bellek kullanımını hesaplamak için aşağıdakileri yapar:

  1. Resmin veya yazı tipinin sıkıştırmasını açın.
  2. Aşağıdaki optimizasyonların geçerli olup olmadığını kontrol edin:
    • Ekranı daha iyi dolduracak şekilde yeniden boyutlandırma
    • Şeffaf pikselleri kırpma
    • Gerçekçilik kaybı olmadan RGB565'e indirgeme

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 bitmap 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. Tüm vektor yazı tiplerinin işlenmemiş 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 bitmap yazı tiplerinin toplam boyutu

Yapılandırmalar

Yapılandırmaları olan kadranlar için sistem, farklı yapılandırmalardaki kadran kaynaklarının toplam boyutunu hesaplamaya çalışır. Kombinasyon sayısı çok fazlaysa sistem, eşzamanlı olarak kaç kaynağın kullanıldığını fazla tahmin edebilir.

Ambiyans modu ve katmanlar

Sistem, ambiyans modunda en fazla üç tam ekran katman kullanıldığını varsayar. Bu katmanlardan ikisi statiktir. Katmanlar şunları içerir:

  1. Kadran arka planı. Sistem, arka planın kaç resimden oluştuğuna bakılmaksızın bunu tek bir resim olarak değerlendirir.
  2. Eller, dijital ekranlar veya dinamik öğeler gibi hareketli parçalar.
  3. Kaynak XML dosyasından kalan öğeler.

Büyük bitmap yazı tipleri, genellikle ambiyans modunda 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.

Bitmap yazı tiplerini kırpma ve yeniden boyutlandırma

Resimlerinizi ve BitmapFont nesnelerinizi ekran boyutuna uyacak şekilde kırpın.

Wear OS, kadranlarda tüm resimlerin sıkıştırılmamış halini kullanır. Çoğunlukla boş olan tam ekran bir resim diskte 3 KB, 450 piksel x 450 piksel ekranda ise 750 KB veya daha fazla yer kaplar.

Tutarlı bitmap yazı tipi yükseklikleri kullanın

BitmapFont kullanırken bir karakterin tüm resimlerinin aynı yüksekliğe sahip olduğundan emin olun. Benzer şekilde, kelimelerin tüm resimlerinin aynı yükseklikte olduğundan emin olun.

Animasyonlarda tutarlı kare boyutları kullanın

Bir resmi kadranda taşımak yerine resimdeki öğeleri güncelleyin ve sınırlayıcı kutunun konumunu sabit tutun. Örneğin, kadranınızdaki bir daireyi hareket ettirmek için daireyi kaydırmak yerine rengini değiştirin.

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

Resimleri tekilleştirme

Bir resmi birden fazla kez görüntülemek için yalnızca bir resim kaynağı ekleyin ve bu kaynağa birden fazla kez referans verin.

Yaylar kullanarak ilerleme durumunu gösterme

1 dakika veya 1 saat sonra biten bir ilerleme çubuğunu simüle etmek için 60 resim kullanmayın. Aşağıda gösterildiği gibi, uzunluğunu kontrol eden bir ifadeyle bir Arc nesnesi kullanın:

<PartDraw angle="0" width="400" height="400" name="ProgressBar"
          pivotX="0.5" pivotY="0.5 x="40" y="40">
    <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="#123456" thickness="10" />
    </Arc>
</PartDraw>

Örneğin, retro dijital saat tarzında bir görünüm elde etmek için kesintisiz olmayan bir çizgi görüntülemek istiyorsanız Stroke nesnesi için kısa çizgi özelliğini veya yarı saydam maske resim yer paylaşımını kullanın.

Kol saati ibrelerini ve komplikasyonları kaynak dosyanın sonuna yerleştirin

XML düğümleri, kaynak XML'de listelenen sırada çizilir. Kol saati ibrelerini ve komplikasyonları en sona ekleyerek sistemin, ortam modu bellek hesaplamasından bir katmanın tamamını kaldırmasını sağlarsınız.

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ğerlendirme aracını kullanın.