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

Sistem, Wear OS cihazların mümkün olan en iyi pil ömrünü sağlamak için bir bellek kullanımı hesaplaması gerçekleştirir. Wear OS uygulama kalitesinin bir parçası olarak yönergelerine göre, Saat Kadranı Formatı'nı kullanan kadranlarda miktarına bağlı olarak, saatin geçerli durumuna bağlı olarak tüketebilecekleri bellek miktarına karşılık gelir:

  • Ambiyans modunda kadran, 10 MB'tan fazla veri kullanamaz hafızada bulabilirsiniz.
  • Etkileşimli modda kadran, 100 MB'tan fazla veri kullanamaz hafızada bulabilirsiniz.
ziyaret edin.

Sistem, kadranın bellek kullanımını hesaplar

Kadranda seçtiğiniz resmin veya bit eşlem yazı tipinin kapladığı boyutu hesaplamak için: Saat Kadranı Formatı'nı kullanıyorsa sistem aşağıdaki adımları tamamlar:

  1. Resmin veya bit eşlem yazı tipinin sıkıştırmasını açar.
  2. Aşağıdakilerden birinde optimize edilip edilemeyeceğini görmek için resmi veya bit eşlem yazı tipini inceler: şu yöntemleri kullanabilirsiniz:
    • Görüntü boyutuyla daha iyi eşleşmesi için yeniden boyutlandırıldı.
    • Tamamen şeffaf pikselleri kaldırmak için kırpıldı.
    • Bu işlem yerel olarak yapılabiliyorsa RGB565 değerine küçültülür kalite kaybına neden olabilir.

Ortaya çıkan sınırlayıcı kutuya bağlı olarak sistem görüntünün boyutunu hesaplar veya bit eşlem yazı tipini bayt cinsinden belirtin.

  • RGBA8888 kullanılan resimler ve yazı tipleri için: \( 4 \times width \times height \)
  • RGB565 kullanan resimler ve yazı tipleri için: \( 2 \times width \times height \)
  • ALPHA_8 bit eşlem yapılandırmasını kullanan resimler ve yazı tipleri için: \( width \times height \).
ziyaret edin.

Etkileşimli mod

Sistem, etkileşimli mod için bellek kullanımı hesaplanırken sistem tarafından şunların toplamı:

  1. Vektör yazı tiplerinin işlenmemiş boyutu.
  2. Sistemin varsayılan yazı tipinin tahmini kullanımı.
  3. Resimlerin ve bit eşlem yazı tiplerinin herhangi bir kırpma, yeniden boyutlandırma ve veya yeniden biçimlendirme uygulandı.

Yapılandırmalar

Yapılandırma içeren saat kadranlarında sistem, Farklı yapılandırmalarda kullanılan kaynakların toplam boyutu. Bazen, çok sayıda kombinasyon olduğunda, sistem dönüşüm gerçekleştirmesi için aynı anda kaç kaynağın olanak tanır.

Ambiyans modu ve katmanlar

Ambiyans modu için sistem, saatin en fazla ikisi tamamen statik olan üç tam ekran katmanı vardır:

  1. Saat öğelerinin altındaki her şey. Kadranın "gövdesi"nin büyük bir kısmı : birleştirilir. Reklam yayınlamak için kaç resmin kullanıldığı bu katmanı çizin; sistem bunu tek bir tam ekran resim olarak sayar.
  2. Kol saati elleri, dijital ekran veya platform bağlamaları olan komplikasyonlar otomatik olarak oluşturulur.
  3. Saat ellerinden ve komplikasyonlardan sonra listelenen tüm öğeler kaynak XML dosyası.

Ambiyans modunda genellikle bellek kullanımının çoğu, özellikle gerekir.

Bellek kullanımını azaltma yöntemleri

Bu bölümlerdeki önerileri izleyerek hafıza tüketimi bu sınırlar dahilinde kalan kadran.

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

Resimlerinizi ve BitmapFont nesnelerinizi kırpın ve boyutlarıyla uyumlu olacak şekilde yeniden boyutlandırın görüntü boyutu.

Wear OS bir kadran çizdiğinde tüm resimler açılır. Tam ekran çoğunlukla boş olan resim diskte 3 KB yer kaplayabilir, ancak görüntülenirse 450 piksel x 450 piksel boyutlarında bir ekranda, sistem resmi sıkıştırarak resmin bellekteki boyutunun 750 KB veya daha büyük olmasını sağlayın.

Tutarlı bit eşlem yazı tipi yükseklikleri kullanın

BitmapFont kullanılırken, bir karaktere ait tüm görseller aynı olmalıdır yükseklik. Benzer bir şekilde, kelimelere ilişkin tüm görsellerin her biri aynı yüksekliğe sahip olmalıdır.

Animasyonlarda tutarlı kare boyutları kullanın

Bir resmi, kadranda taşımak yerine, kadranın içindeki öğeleri görüntüsüne göre ve sınırlayıcı kutusunu kadrana göre aynı konumda tutmalıdır. Örneğin, kadranınızda bir daireye animasyon eklemek istiyorsanız saat boyunca daireyi yuvarlamak yerine dairenin rengini değiştirmek yüzü.

Bu teknik, sistemin hesapladığı sınırlayıcı kutunun boyutunu azaltır seçeceğim.

Resimleri tekilleştirin

Kadranınızda aynı resmin birden fazla kopyası gösteriliyorsa yalnızca bir kopya ekleyin bu resmin kopyasını kaynaklar dizininize ekleyerek, ona kez.

Yayınları kullanarak ilerleme durumunu gösterme

1 dakika sonra veya 1 saat sonra tamamlanan bir ilerleme çubuğu emülasyonu yapmak için ve 60 ayrı resim kullanın. Bunun yerine, şunu içeren bir Arc nesnesi oluşturun: uzunluğunu kontrol eden ifade (aşağıdaki kod snippet'inde gösterildiği gibi):

<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>

Kesintisiz bir çizgi göstermek (örneğin, retro bir dijital saat elde etmek için) bir Stroke nesnesi için tire özelliği veya yarı şeffaf maske resmi yer paylaşımı.

Kol saati ellerini ve özelliklerini kaynak dosyanın sonuna yerleştirin

XML düğümleri, kaynak XML dosyasında listelendikleri sırayla çizilir. Ölçüt sırasında sistem, saatin ellerini ve komplikasyonlarını dosyanın sonuna koyarak ambiyans modu bellek hesaplamasından bir katmanın tamamını çıkarır.

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

Kadranınızın bellek kullanımını ölçmek için bellek ayak izini kullanın değerlendirme aracı üzerinden indirebilirsiniz.watchface

ziyaret edin.