Latensi pengaktifan adalah metrik penting untuk mempertahankan pengguna aktif harian dan memastikan pengalaman pengguna yang lancar sejak interaksi pertama. Hal ini terutama berlaku di lingkungan dengan RAM rendah yang dapat mempertimbangkan tradeoff performa. Namun, sebelum mulai meningkatkan pengaktifan aplikasi, penting untuk memahami aspek dasar yang berkontribusi terhadap pengaktifan itu sendiri.
Praktik terbaik
Mengirim dengan Profil Dasar Pengukuran
Profil Dasar Pengukuran meningkatkan kecepatan eksekusi kode sekitar 30% sejak peluncuran pertama dengan menghindari langkah interpretasi dan kompilasi tepat waktu (JIT) untuk jalur kode yang disertakan. Dengan mengirimkan Profil Dasar Pengukuran dalam aplikasi, Android Runtime (ART) dapat mengoptimalkan jalur kode yang disertakan melalui kompilasi Ahead of Time (AOT), yang memberikan peningkatan performa untuk setiap pengguna baru dan setiap update aplikasi.
Menghindari inisialisasi cepat
Hindari melakukan tugas berat yang mungkin tidak diperlukan dalam urutan pengaktifan aplikasi.
Skenario yang paling mungkin terjadi untuk aplikasi Anda yang memulai proses adalah melalui
peluncuran aplikasi. Namun,
WorkManager,
JobScheduler,
BroadcastReceiver, layanan
terikat, dan library AndroidX startup
juga dapat memulai proses aplikasi di latar belakang. Jika memungkinkan, jangan melakukan inisialisasi apa pun dengan segera
di class Application
. Banyak library
menawarkan inisialisasi sesuai permintaan, yang memungkinkan Anda memanggilnya hanya jika diperlukan.
Memindahkan tugas dari UI thread ke thread latar belakang
Jika ada tugas yang memerlukan waktu lebih lama dan memblokir thread utama, pindahkan tugas tersebut ke thread latar belakang atau gunakan WorkManager untuk memastikan efisiensi. Identifikasi operasi yang menempati frame waktu besar atau menghabiskan lebih banyak waktu dari yang diharapkan. Mengoptimalkan tugas-tugas ini dapat membantu meningkatkan latensi pengaktifan secara drastis.
Menganalisis dan memperbaiki pertentangan pembacaan disk yang parah
StrictMode adalah alat developer yang dapat membantu mendeteksi penggunaan disk atau akses jaringan yang tidak disengaja di thread utama aplikasi, tempat operasi UI diterima dan animasi dijalankan. Setelah alat ini mendeteksi kemungkinan area peningkatan, Anda dapat menghentikan aplikasi secara otomatis atau mencatat pelanggaran ke dalam log untuk diperiksa lebih lanjut di lain waktu.
Menghindari IPC sinkron
Biasanya, jeda lama dalam eksekusi aplikasi disebabkan oleh panggilan binder, yaitu mekanisme komunikasi antarproses (IPC) di Android. Di versi terbaru Android, hal tersebut menjadi salah satu alasan paling umum UI Thread berhenti berjalan. Umumnya, perbaikannya adalah menghindari pemanggilan fungsi yang melakukan panggilan binder; jika tidak dapat dihindari, Anda harus menyimpan nilai di cache, atau memindahkan pekerjaan ke thread latar belakang. Untuk informasi selengkapnya, lihat Penundaan penjadwalan thread.