Untuk memberikan masa pakai baterai perangkat Wear OS sebaik mungkin, sistem akan melakukan penghitungan penggunaan memori. Sebagai bagian dari pedoman kualitas aplikasi Wear OS, tampilan jam yang menggunakan Format Tampilan Jam memiliki batas jumlah memori yang dapat digunakan, bergantung pada status smartwatch saat ini:
- Dalam mode standby, tampilan jam tidak boleh menggunakan lebih dari 10 MB memori.
- Dalam mode interaktif, tampilan jam tidak boleh menggunakan lebih dari 100 MB memori.
Sistem menghitung penggunaan memori tampilan jam
Untuk menghitung ukuran yang digunakan oleh gambar atau font bitmap dalam tampilan jam yang menggunakan Format Tampilan Jam, sistem akan menyelesaikan langkah-langkah berikut:
- Mendekompresi gambar atau font bitmap.
- Memeriksa gambar atau font bitmap untuk melihat apakah dapat dioptimalkan dengan salah satu
cara berikut:
- Diubah ukurannya agar lebih sesuai dengan ukuran tampilannya.
- Dipangkas untuk menghapus piksel yang sepenuhnya transparan.
- Diturunkan sampelnya menjadi RGB565, jika tindakan ini dapat dilakukan tanpa kehilangan fidelitas.
Berdasarkan kotak pembatas yang dihasilkan, sistem menghitung ukuran gambar atau font bitmap, dalam byte, sebagai salah satu dari berikut ini:
- Untuk gambar dan font yang menggunakan RGBA8888: \( 4 \times width \times height \)
- Untuk gambar dan font yang menggunakan RGB565: \( 2 \times width \times height \)
- Untuk gambar dan font yang menggunakan konfigurasi bitmap ALPHA_8: \( width \times height \)
Mode interaktif
Saat menghitung penggunaan memori untuk mode interaktif, sistem akan menghitung jumlah hal berikut:
- Ukuran font vektor yang belum diproses.
- Perkiraan penggunaan font default sistem.
- Ukuran total gambar dan font bitmap setelah pemangkasan, pengubahan ukuran, atau pemformatan ulang telah diterapkan.
Konfigurasi
Untuk tampilan jam yang berisi konfigurasi, sistem mencoba menghitung total ukuran resource yang digunakan dalam berbagai konfigurasi. Terkadang, ketika ada jumlah kombinasi yang sangat besar, sistem sedikit melebih-lebihkan jumlah resource yang digunakan secara bersamaan di konfigurasi yang berbeda.
Lapisan dan mode standby
Untuk mode standby, sistem akan mengasumsikan bahwa smartwatch dirender menggunakan hingga tiga lapisan layar penuh, dua di antaranya sepenuhnya statis:
- Segala sesuatu di bawah elemen {i>watch<i}. Sebagian besar "isi" tampilan jam disusun ke dalam lapisan ini. Tidak masalah berapa banyak gambar yang digunakan untuk menggambar lapisan ini; sistem akan menghitungnya sebagai satu gambar layar penuh.
- Semua jarum jam, tampilan digital, atau detail dengan binding platform yang dirender secara dinamis.
- Semua elemen yang dicantumkan setelah jarum jam dan detail di file XML sumber.
Biasanya, sebagian besar penggunaan memori dalam mode standby berasal dari font bitmap, terutama font yang besar.
Metode untuk mengurangi penggunaan memori
Dengan mengikuti saran di bagian ini, kemungkinan besar Anda membuat tampilan jam yang konsumsi memorinya tetap dalam batas ini.
Memangkas dan mengubah ukuran font bitmap
Pangkas gambar dan objek BitmapFont
, lalu ubah ukurannya agar sesuai dengan
ukuran tampilannya.
Saat Wear OS menampilkan tampilan jam, semua gambar akan didekompresi. Gambar layar penuh yang sebagian besar kosong mungkin menggunakan ukuran disk sebesar 3 KB, tetapi jika ditampilkan pada layar 450 x 450 piksel, sistem akan mendekompresi gambar, sehingga ukuran memori gambar akan meningkat hingga 750 KB atau lebih.
Menggunakan tinggi font bitmap yang konsisten
Saat menggunakan BitmapFont
, semua gambar untuk masing-masing karakter harus memiliki tinggi
yang sama. Demikian juga, semua gambar untuk setiap kata harus memiliki tinggi yang sama.
Menggunakan ukuran bingkai yang konsisten dalam animasi
Daripada memindahkan gambar di tampilan jam, perbarui elemen dalam gambar dan pertahankan kotak pembatasnya di lokasi yang sama dengan tampilan jam. Misalnya, jika Anda ingin menganimasikan lingkaran pada tampilan jam, pertimbangkan untuk mengubah warna lingkaran, bukan memutar lingkaran di tampilan jam.
Teknik ini mengurangi ukuran kotak pembatas yang dihitung sistem untuk animasi.
Menghapus duplikat gambar
Jika tampilan jam Anda menampilkan beberapa salinan gambar yang sama, muat satu salinan gambar tersebut ke dalam memori dan buat beberapa referensi ke satu gambar tersebut.
Menampilkan progres menggunakan busur
Untuk mengemulasi status progres yang selesai setelah 1 menit atau setelah 1 jam, jangan
gunakan 60 gambar terpisah. Sebagai gantinya, buat objek Arc
yang berisi
ekspresi yang mengontrol durasinya, sebagaimana ditunjukkan dalam cuplikan kode berikut:
<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.
Tempatkan jarum jam dan detail di akhir file sumber
Node XML digambar sesuai urutan yang tercantum dalam file XML sumber. Dengan menempatkan jarum jam dan detail di akhir file, sistem akan 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.
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- WatchFace
- Penyiapan Format Tampilan Jam