Keahlian Android
Lihat di GitHubR8 Analyzer
android skills add r8-analyzerUntuk pengalaman pengguna terbaik, Anda harus mengoptimalkan aplikasi agar berukuran sekecil dan secepat mungkin. Pengoptimal aplikasi kami, yang disebut R8, menyederhanakan aplikasi Anda dengan menghapus kode dan resource yang tidak digunakan, menulis ulang kode untuk mengoptimalkan performa runtime, dan lainnya. Bagi pengguna, hal ini berarti:
- Waktu mulai lebih cepat
- Pengurangan penggunaan memori
- Peningkatan performa rendering dan runtime
- Lebih sedikit ANR
Ringkasan pengoptimalan R8
R8 menggunakan proses multi-fase untuk mengoptimalkan ukuran dan kecepatan aplikasi Anda. Operasi utama mencakup hal berikut:
Penyingkatan kode (disebut juga tree shaking): R8 mengidentifikasi dan menghapus kode yang tidak dapat dijangkau dari aplikasi Anda dan dependensi library-nya. Dengan menganalisis titik entri aplikasi Anda (seperti
ActivitiesatauServicesyang ditentukan dalam manifes), R8 membuat grafik kode yang direferensikan dan menghapus semua yang tetap tidak direferensikan.Pengoptimalan logis: R8 menulis ulang kode Anda untuk meningkatkan efisiensi eksekusi dan mengurangi overhead. Teknik utama mencakup:
Inlining metode: R8 mengganti situs panggilan metode dengan isi sebenarnya dari metode yang dipanggil. Hal ini menghilangkan overhead panggilan fungsi dan memungkinkan R8 melakukan pengoptimalan lebih lanjut.
Penggabungan class: R8 menggabungkan kumpulan class dan antarmuka menjadi satu class. Hal ini mengurangi jumlah class dalam aplikasi, menurunkan tekanan memori, dan meningkatkan kecepatan startup.
Obfuscation (disebut juga minifikasi): Untuk mengurangi ukuran file DEX file, R8 mempersingkat nama class, kolom, dan metode (misalnya,
com.example.MyActivitydapat menjadia.b.a).
Sejak versi 8.12.0 plugin Android Gradle (AGP), R8 juga mengoptimalkan resource sebagai bagian dari fase pengoptimalannya. Untuk mengetahui informasi selengkapnya, lihat Penyingkatan resource yang dioptimalkan.
Mengaktifkan pengoptimalan
Untuk mengaktifkan pengoptimalan aplikasi, gunakan DSL yang sesuai berdasarkan versi AGP project Anda. Sebaiknya aktifkan pengoptimalan aplikasi hanya di versi final aplikasi yang Anda uji sebelum dipublikasikan—biasanya build rilis—karena pengoptimalan meningkatkan waktu build project Anda dan dapat membuat proses debug lebih sulit karena cara pengoptimalan mengubah kode.
Untuk AGP versi 9.3 dan yang lebih tinggi
Untuk mengaktifkan pengoptimalan aplikasi untuk AGP 9.3 dan yang lebih tinggi:
- Tetapkan
enable = truedi blokoptimizationdalam skrip build tingkat aplikasi build rilis Anda. - Tambahkan aturan keep Anda ke file dengan akhiran
.keepdisrc/<variant>/keepRulesset sumber. Misalnya,src/main/keepRules/custom-rules.keep.
Kotlin
android {
buildTypes {
release {
optimization {
enable = true // Enables code and resource optimizations.
}
}
}
}
Groovy
android {
buildTypes {
release {
optimization {
enable