Mengoptimalkan Tampilan

Setelah memiliki tampilan yang dirancang dengan baik, yang merespons gestur dan transisi antar-status, pastikan tampilan tersebut berjalan cepat. Agar UI tidak terasa lamban atau tersendat selama pemutaran, pastikan animasi berjalan secara konsisten pada 60 frame per detik.

Lakukan Lebih Sedikit dan Lebih Jarang

Untuk mempercepat tampilan, hilangkan kode yang tidak perlu dari rutinitas yang sering dipanggil. Mulailah dengan menangani onDraw(), yang akan memberi Anda manfaat terbesar. Secara khusus, Anda perlu menghilangkan alokasi di onDraw(), karena alokasi dapat menyebabkan pembersihan sampah memori yang akan mengakibatkan operasi tersendat. Alokasikan objek selama inisialisasi, atau di antara animasi. Jangan membuat alokasi saat animasi sedang berjalan.

Selain menjadikan onDraw() lebih ringkas, pastikan juga untuk memanggilnya sejarang mungkin. Sebagian besar panggilan ke onDraw() adalah hasil dari panggilan ke invalidate(), jadi tiadakan panggilan yang tidak perlu ke invalidate().

Operasi lain yang menguras resource adalah menjelajahi tata letak. Setiap kali tampilan memanggil requestLayout(), sistem UI Android harus menjelajahi seluruh hierarki tampilan untuk mengetahui seberapa besar keharusan setiap tampilan. Jika menemukan ukuran yang saling bertentangan, sistem mungkin perlu menjelajahi hierarki beberapa kali. Desainer UI terkadang membuat hierarki yang dalam, yang terdiri dari serangkaian objek ViewGroup bertingkat agar UI berperilaku dengan baik. Hierarki tampilan yang dalam semacam ini dapat menimbulkan masalah performa. Jadikan hierarki tampilan Anda sedangkal mungkin.

Jika Anda menggunakan UI yang kompleks, cobalah menulis ViewGroup kustom untuk menangani tata letaknya. Tidak seperti tampilan bawaan, tampilan kustom dapat membuat asumsi khusus aplikasi terkait ukuran dan bentuk turunannya, dan karenanya dapat meniadakan penjelajahan turunan untuk menghitung ukuran. Contoh PieChart menunjukkan cara menyediakan ViewGroup sebagai bagian dari tampilan kustom. PieChart memiliki tampilan turunan, tetapi tidak pernah mengukurnya. Sebagai gantinya, PieChart menetapkan ukurannya secara langsung berdasarkan algoritme tata letak kustomnya sendiri.