Tampilan jam Wear OS berjalan terus-menerus sehingga harus menggunakan daya secara efisien.
Optimalkan performa tampilan jam sebanyak mungkin. Halaman ini memberikan praktik terbaik untuk keseluruhan pengoptimalan tampilan jam serta praktik terbaik yang ditargetkan untuk animasi dan gambar.
Pengoptimalan dasar
Bagian ini berisi praktik terbaik untuk meningkatkan efisiensi tampilan jam secara keseluruhan.
Kecerahan dan warna tampilan jam
Penggunaan warna gelap pada tampilan jam akan mengurangi daya dari smartwatch pengguna. Berikut adalah beberapa rekomendasi untuk menyetel latar belakang tampilan jam, untuk mengoptimalkan penggunaan baterai tampilan jam:
- Warna: Jika memungkinkan, gunakan latar belakang hitam.
- Kecerahan: jika latar belakang hitam tidak dimungkinkan,
pertahankan kecerahan
warna latar belakang pada atau di bawah 25% pada
hue, saturasi, nilai (HSV) atau hue, skala saturasi, kecerahan (HSB). Misalnya,
jika Anda menggunakan
class
Color
untuk menetapkan warna latar belakang yang ditentukan dengan skala HSV, gunakan setelan nilai 25 atau yang lebih rendah, yang mengontrol kecerahan.
Menggunakan kemampuan dinamis untuk berinteraksi dengan ponsel
Jika tampilan jam memerlukan operasi untuk berjalan di ponsel, jalankan kode hanya saat tampilan jam aktif. Metode yang direkomendasikan untuk membuat aplikasi di ponsel mengetahui bahwa tampilan jam yang terkait sedang aktif adalah CapabilityClient API.
Memantau konsumsi daya
Aplikasi pendamping Wear OS memungkinkan developer dan pengguna melihat banyaknya daya baterai yang dipakai oleh berbagai proses di perangkat wearable. Untuk melihatnya, buka Setelan > Baterai smartwatch.
Mendaftarkan tampilan jam yang peka enkripsi
Android 7.0 dan yang lebih baru menyertakan dukungan untuk enkripsi berbasis file dan memungkinkan aplikasi yang peka enkripsi dijalankan sebelum pengguna memberikan kode sandi dekripsi saat booting. Hal ini dapat mengurangi durasi transisi dari animasi booting ke tampilan jam hingga 30 detik.
Untuk mengaktifkan booting yang lebih cepat, tambahkan android:directBootAware="true"
ke manifes
tampilan jam.
Catatan: Gunakan fitur ini dengan tampilan jam yang tidak menggunakan penyimpanan yang dienkripsi dengan kredensial.
Praktik terbaik untuk animasi
Praktik terbaik di bagian ini membantu mengurangi pemakaian daya yang terkait dengan animasi.
Mengurangi frekuensi gambar animasi
Animasi sering memerlukan banyak komputasi dan memakai banyak daya. Sebagian besar animasi terlihat lancar pada 30 frame per detik, sebaiknya Anda tidak menjalankan animasi dengan kecepatan frame yang lebih tinggi. Sebagai gantinya, Anda dapat menggunakan kecepatan frame dinamis. Untuk mengetahui informasi selengkapnya, lihat Contoh Tampilan Jam Kanvas.
Mengizinkan CPU tidur di antara animasi
Untuk memaksimalkan masa pakai baterai, gunakan animasi seperlunya. Bahkan titik dua yang berkedip akan membangunkan CPU pada setiap kedipannya.
Animasi dan perubahan kecil pada konten tampilan jam akan mengaktifkan CPU. Biarkan CPU tidur di antara animasi dengan, misalnya, menggunakan animasi singkat setiap detik dalam mode interaktif lalu membiarkan CPU tidur hingga detik berikutnya. Membiarkan CPU sering tidur, meskipun sebentar, dapat mengurangi pemakaian daya secara signifikan.
Praktik terbaik untuk gambar
Praktik terbaik di bagian ini membantu mengurangi pemakaian daya yang terkait dengan gambar.
Mengurangi ukuran aset bitmap
Banyak tampilan jam yang terdiri dari gambar latar dan aset visual lain yang diubah
dan ditempatkan di atas gambar latar, seperti jarum jam dan elemen lainnya
yang bergerak sepanjang waktu. Makin besar aset visual Anda, makin banyak komputasi yang diperlukan
untuk mengubahnya. Biasanya, elemen visual ini dirotasikan (dan terkadang diskalakan) di dalam metode
Render.CanvasRenderer.render()
setiap kali sistem menggambar ulang tampilan jam,
seperti yang dijelaskan dalam Menggambar tampilan jam.
Mengurangi ukuran aset bitmap akan meningkatkan performa animasi dan menghemat daya. Ikuti tips berikut untuk meningkatkan performa tampilan jam:
- Jangan gunakan elemen visual yang lebih besar dari kebutuhan Anda.
- Hapus piksel transparan tambahan di sekitar tepi.
Misalnya, ukuran gambar jarum jam di sebelah kiri pada gambar 1 dapat dikurangi 97% dengan menghapus piksel transparan tambahan, seperti yang ditampilkan di sebelah kanan gambar.
Menggabungkan aset bitmap
Jika Anda memiliki bitmap yang sering digambar bersama, sebaiknya gabungkan ke dalam satu aset visual. Contohnya, sering kali Anda dapat menggabungkan gambar latar dalam mode interaktif dengan tanda centang, sehingga Anda tidak perlu menggambar dua bitmap layar penuh setiap kali sistem menggambar ulang tampilan jam.
Menonaktifkan anti-aliasing saat menggambar bitmap yang diskalakan
Saat menggambar bitmap yang diskalakan pada
objek Canvas
menggunakan
metode
Canvas.drawBitmap()
, Anda dapat menyediakan
instance Paint
untuk mengonfigurasi
beberapa opsi. Untuk meningkatkan performa, nonaktifkan anti-aliasing menggunakan
metode
setAntiAlias()
, karena opsi ini tidak berpengaruh pada bitmap.
Menggunakan pemfilteran bitmap
Untuk aset bitmap yang Anda gambar di atas elemen lain, aktifkan pemfilteran bitmap pada instance
Paint
yang sama menggunakan metode setFilterBitmap()
. Gambar 2 menunjukkan tampilan jarum jam yang diperbesar dengan
dan tanpa pemfilteran bitmap.
Catatan: Saat mode standby aktif, nonaktifkan pemfilteran bitmap. Dalam mode standby bit rendah, sistem tidak dapat merender warna dalam gambar dengan andal agar pemfilteran bitmap berhasil diproses.
Memindahkan operasi besar di luar metode menggambar
Sistem memanggil metode Render.CanvasRenderer.render()
setiap kali menggambar ulang tampilan jam Anda. Untuk meningkatkan performa, hanya sertakan
operasi dalam metode ini yang benar-benar diperlukan untuk memperbarui tampilan jam.
Jika memungkinkan, hindari menjalankan operasi berikut dalam metode
Render.CanvasRenderer.render()
:
- Memuat gambar dan resource lainnya.
- Mengubah ukuran gambar
- Mengalokasikan objek
- Komputasi yang hasilnya tidak berubah di antara frame
Untuk menganalisis performa tampilan jam, gunakan CPU Profiler. Secara khusus, pastikan waktu eksekusi untuk implementasi Render.CanvasRenderer.render()
Anda tidak terlalu lama dan konsisten di seluruh pemanggilan. Untuk mengetahui informasi selengkapnya, lihat Memeriksa aktivitas CPU dengan CPU Profiler.
Referensi terkait
Aplikasi contoh tampilan jam menunjukkan praktik terbaik untuk mengonfigurasi tampilan jam.