Mengoptimalkan penggunaan memori untuk tampilan jam

Wear OS meningkatkan masa pakai baterai dengan melacak penggunaan memori. Tampilan jam yang menggunakan Format Tampilan Jam memiliki batas memori, sesuai dengan pedoman kualitas aplikasi Wear OS:

  • Mode standby: Penggunaan memori maksimum 10 MB.
  • Mode interaktif: Penggunaan memori maksimum 100 MB.

Penghitungan penggunaan memori

Untuk menghitung penggunaan memori untuk font gambar atau bitmap di tampilan jam menggunakan Format Tampilan Jam, sistem melakukan hal berikut:

  1. Dekompresi gambar atau font.
  2. Periksa apakah pengoptimalan berikut berlaku:
    • Mengubah ukuran agar lebih sesuai dengan layar
    • Memangkas piksel transparan
    • Downsampling ke RGB565, tanpa kehilangan fidelitas

Berdasarkan kotak pembatas yang dihasilkan, ukuran dihitung sebagai berikut:

  • Untuk gambar dan font yang menggunakan RGBA8888: 4 x lebar x tinggi
  • Untuk gambar dan font yang menggunakan RGB565: 2 x lebar x tinggi
  • Untuk gambar dan font yang menggunakan konfigurasi bitmap ALPHA_8: lebar x tinggi

Mode interaktif

Untuk menghitung penggunaan memori untuk mode interaktif, sistem akan menjumlahkan nilai berikut:

  1. Ukuran font vektor yang belum diproses
  2. Estimasi penggunaan font default sistem
  3. Ukuran total gambar dan font bitmap setelah pemangkasan, pengubahan ukuran, dan pemformatan ulang diterapkan

Konfigurasi

Untuk tampilan jam dengan konfigurasi, sistem akan mencoba menghitung ukuran total resource tampilan jam di berbagai konfigurasi. Jika jumlah kombinasi sangat besar, sistem mungkin melebih-lebihkan jumlah resource yang digunakan secara bersamaan.

Mode pencahayaan sinematik dan lapisan

Sistem mengasumsikan mode standby menggunakan hingga tiga lapisan layar penuh, dua di antaranya bersifat statis. Lapisan tersebut meliputi:

  1. Latar belakang tampilan jam. Sistem memperlakukannya sebagai satu gambar, terlepas dari jumlah gambar yang terdiri dari latar belakang.
  2. Bagian yang bergerak seperti jarum, layar digital, atau elemen dinamis.
  3. Elemen yang tersisa dari file XML sumber.

Font bitmap besar sering kali menggunakan memori terbanyak dalam mode standby.

Metode untuk mengurangi penggunaan memori

Gunakan pengoptimalan berikut untuk mengurangi penggunaan memori.

Memangkas dan mengubah ukuran font bitmap

Pangkas gambar dan objek BitmapFont agar sesuai dengan ukuran tampilan.

Wear OS menampilkan tampilan jam dengan semua gambar didekompresi. Gambar layar penuh yang sebagian besar kosong mungkin menggunakan ukuran disk sebesar 3 KB, tetapi 750 KB atau lebih pada layar 450 x 450 piksel.

Menggunakan tinggi font bitmap yang konsisten

Saat menggunakan BitmapFont, pastikan semua gambar untuk karakter memiliki tinggi yang sama. Demikian juga, pastikan semua gambar untuk setiap kata memiliki tinggi yang sama.

Menggunakan ukuran frame yang konsisten dalam animasi

Daripada memindahkan gambar di seluruh tampilan jam, perbarui elemen dalam gambar dan pertahankan posisi kotak pembatas tetap. Misalnya, untuk menganimasikan lingkaran di tampilan jam, ubah warnanya, bukan menggulungnya.

Teknik ini memperkecil ukuran kotak pembatas yang dihitung animasi.

Menghapus duplikat gambar

Untuk menampilkan gambar beberapa kali, hanya sertakan satu resource gambar dan referensikan beberapa kali.

Menampilkan progres menggunakan busur

Untuk menyimulasikan status progres yang selesai setelah 1 menit atau 1 jam, jangan gunakan 60 gambar. Gunakan objek Arc dengan ekspresi yang mengontrol durasinya, seperti yang ditunjukkan di sini:

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

Untuk menampilkan garis tidak berkelanjutan, misalnya untuk mendapatkan tampilan gaya jam tangan digital retro, gunakan properti tanda hubung untuk objek Stroke atau gambar overlay mask semi-transparan.

Menempatkan jarum jam dan detail di akhir file sumber

Node XML digambar dalam urutan yang tercantum dalam XML sumber. Dengan menempatkan jarum dan detail jam di bagian akhir, Anda memungkinkan sistem untuk menghapus seluruh lapisan dari penghitungan memori mode standby.

Mengevaluasi penggunaan memori tampilan jam

Untuk mengukur penggunaan memori tampilan jam, gunakan alat evaluator jejak memori, yang tersedia di repositori watchface di GitHub.