Acara & Program
Menggunakan R8 untuk menyusutkan, mengoptimalkan, dan mempercepat aplikasi Anda
Waktu baca: 5 menit
Menggunakan R8 untuk menyusutkan, mengoptimalkan, dan mempercepat aplikasi Anda
Selamat datang di hari pertama Android Performance Spotlight Week.
Kami memulai dengan perubahan paling berdampak dan mudah yang dapat Anda lakukan untuk meningkatkan performa aplikasi: mengaktifkan pengoptimal R8 dalam mode penuh.
Anda mungkin sudah mengetahui R8 sebagai alat untuk mengecilkan ukuran aplikasi Anda. Fitur ini sangat efektif dalam menghapus kode dan resource yang tidak digunakan, sehingga mengurangi ukuran aplikasi Anda. Namun, kemampuan sebenarnya, yang benar-benar g-R8, adalah sebagai pengoptimal.
Saat Anda mengaktifkan mode penuh dan mengizinkan pengoptimalan, R8 akan melakukan pengoptimalan seluruh program yang mendalam, dengan menulis ulang kode Anda agar lebih efisien secara mendasar. Ini bukan hanya penyesuaian kecil.
Setelah membaca artikel ini, tonton pengantar Performance Spotlight Week untuk pengoptimal R8 di YouTube.
Cara R8 membuat aplikasi Anda berperforma lebih baik
Mari kita soroti langkah-langkah terbesar yang dilakukan pengoptimal R8 untuk meningkatkan performa aplikasi.
Penghilangan kode yang tidak terpakai (tree shaking) adalah langkah terpenting untuk mengurangi ukuran aplikasi. Selama fase ini, pengoptimal R8 menghapus kode yang tidak digunakan dari library yang menjadi dependensi aplikasi Anda serta kode tidak terpakai dari codebase Anda sendiri.
Penyisipan metode menggantikan panggilan metode dengan kode sebenarnya, yang meningkatkan performa runtime.
Penggabungan class, dan strategi lainnya diterapkan untuk membuat kode lebih ringkas. Semua abstraksi indah Anda, seperti hierarki antarmuka dan class, tidak penting pada saat ini dan kemungkinan akan dihapus.
Minifikasi kode digunakan untuk mengubah nama class, kolom, dan metode menjadi nama yang lebih pendek dan tidak bermakna. Jadi, alih-alih MyDataModel, Anda mungkin akan mendapatkan class yang disebut a. Hal inilah yang menyebabkan kebingungan saat membaca rekaman aktivitas dari aplikasi yang dioptimalkan R8. (Perhatikan bahwa kami telah meningkatkan hal ini di AGP 9.0!)
Penyusutan resource lebih lanjut mengurangi ukuran aplikasi dengan menghapus resource yang tidak digunakan seperti file xml dan drawable.
Dengan menerapkan langkah-langkah ini, pengoptimal R8 meningkatkan waktu startup aplikasi, memungkinkan rendering UI yang lebih lancar, dengan lebih sedikit frame lambat dan macet, serta meningkatkan penggunaan resource di perangkat secara keseluruhan.
Studi Kasus: Peningkatan performa Reddit dengan R8
Sebagai salah satu contoh peningkatan performa yang dapat diberikan R8, mari kita lihat contoh dari Reddit. Setelah mengaktifkan R8 dalam mode penuh, aplikasi Reddit untuk Android mengalami peningkatan performa yang signifikan di berbagai area.
Teks: Cara R8 meningkatkan performa aplikasi Reddit
Tim mengamati start-up dingin yang 40% lebih cepat, penurunan 30% pada error "Aplikasi Tidak Merespons" (ANR), peningkatan 25% dalam rendering frame, dan penurunan 14% dalam ukuran aplikasi.
Peningkatan ini sangat penting untuk kepuasan pengguna. Startup yang lebih cepat berarti lebih sedikit waktu menunggu dan akses yang lebih cepat ke konten. Lebih sedikit ANR menghasilkan aplikasi yang lebih stabil dan andal, sehingga mengurangi frustrasi pengguna. Rendering frame yang lebih lancar menghilangkan jank UI, sehingga membuat scrolling dan animasi terasa lancar dan responsif. Dampak teknis positif ini juga terlihat jelas dalam sentimen pengguna.
Anda dapat membaca lebih lanjut peningkatan yang mereka lakukan di blog kami.
Efek samping non-teknis penggunaan R8
Selama bekerja sama dengan partner, kami melihat bahwa peningkatan teknis ini berdampak langsung pada kepuasan pengguna dan dapat tercermin dalam retensi, engagement, dan durasi sesi pengguna. Loyalitas pengguna, yang dapat diukur dengan pengguna aktif harian, mingguan, atau bulanan, juga telah dipengaruhi secara positif oleh peningkatan performa teknis. Selain itu, kami melihat rating aplikasi di Play Store meningkat seiring dengan penggunaan R8. Membagikan informasi ini kepada pemilik produk, CTO, dan pengambil keputusan dapat membantu mempercepat performa aplikasi Anda.
Jadi, mari kita sebut apa adanya: Pengoptimalan performa yang disengaja adalah keunggulan.
Mengarahkan Anda ke aplikasi yang berperforma lebih baik
Kami mendengar bahwa panduan developer kami untuk R8 perlu ditingkatkan. Jadi, kami mulai bekerja. Panduan developer untuk pengoptimal R8 kini jauh lebih mudah ditindaklanjuti dan memberikan panduan komprehensif untuk mengaktifkan dan men-debug R8.
Dokumentasi ini memandu Anda dalam strategi tingkat tinggi untuk adopsi, dengan menekankan pentingnya memilih library yang kompatibel untuk pengoptimalan dan, yang paling penting, mengadopsi fitur R8 secara bertahap untuk memastikan stabilitas. Pendekatan bertahap ini memungkinkan Anda memanfaatkan manfaat R8 dengan aman sekaligus memberikan panduan tentang masalah yang sulit di-debug.
Kami telah memperluas panduan tentang Aturan Penyimpanan secara signifikan, yang merupakan mekanisme utama untuk mengontrol pengoptimal R8. Sekarang kami menyediakan bagian tentang apa itu Aturan Penyimpanan, cara menerapkannya, dan memandu Anda dengan praktik terbaik untuk menulis dan mempertahankannya. Kami juga memberikan contoh dan kasus penggunaan yang praktis dan dapat ditindaklanjuti, yang membantu Anda memahami cara mencegah R8 menghapus kode yang diperlukan saat runtime dengan benar, seperti kode yang diakses melalui refleksi atau penggunaan antarmuka native JNI.
Dokumentasi kini juga mencakup langkah-langkah lanjutan penting dan skenario lanjutan. Kami menambahkan bagian tentang pengujian dan pemecahan masalah, sehingga Anda dapat memverifikasi peningkatan performa dan men-debug potensi masalah yang muncul. Bagian konfigurasi lanjutan menjelaskan cara menargetkan varian build tertentu, menyesuaikan resource mana yang dipertahankan atau dihapus, dan menawarkan petunjuk pengoptimalan khusus untuk penulis library, sehingga Anda dapat menyediakan paket yang dioptimalkan dan kompatibel dengan R8 untuk digunakan oleh developer lain.
Mengaktifkan potensi penuh pengoptimal R8
Pengoptimal R8 secara default menggunakan "mode penuh" sejak versi 8.0 Plugin Android Gradle. Jika project Anda telah dikembangkan selama bertahun-tahun, project tersebut mungkin masih menyertakan tanda lama untuk menonaktifkannya. Periksa file gradle.properties Anda untuk menemukan baris ini dan hapus.
android.enableR8.fullMode=false // delete this line to enable R8's full potential
Sekarang periksa apakah Anda telah mengaktifkan R8 di file build.gradle.kts aplikasi untuk varian rilis. Penyusutan diaktifkan dengan menyetel isMinifyEnabled dan isShrinkResources ke benar. Anda juga dapat meneruskan file konfigurasi default dan kustom pada langkah ini.
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"keep-rules.pro"
)
}Studi Kasus: Peningkatan performa Disney+
Engineer di Disney+ berinvestasi dalam performa aplikasi dan mengoptimalkan pengalaman pengguna aplikasi. Terkadang, perubahan yang tampaknya kecil pun dapat memberikan dampak yang sangat besar. Saat memeriksa konfigurasi R8, tim menemukan bahwa tanda -dontoptimize sedang digunakan. File ini dibawa oleh file konfigurasi default, yang masih digunakan di banyak aplikasi hingga saat ini.
Setelah mengganti proguard-android.txt dengan proguard-android-optimize.txt, tim Disney+ melihat peningkatan signifikan dalam performa aplikasi mereka.
Setelah versi baru aplikasi yang berisi perubahan ini diluncurkan kepada pengguna, Disney+ melihat peningkatan kecepatan peluncuran aplikasi sebesar 30% dan penurunan ANR yang dirasakan pengguna sebesar 25%.
Saat ini, banyak aplikasi masih menggunakan file proguard-android.txt yang berisi flag -dontoptimize. Di sinilah peningkatan alat kami berperan.
Dukungan alat
Mulai Android Studio Narwhal 3 Feature Drop, Anda akan melihat peringatan lint saat menggunakan proguard-android.txt
Dan mulai AGP 9.0 dan seterusnya, kami sepenuhnya menghentikan dukungan untuk file tersebut. Artinya, Anda harus bermigrasi ke proguard-android-optimize.txt.
Kami juga telah berinvestasi dalam fitur Android Studio baru untuk mempermudah proses men-debug kode yang dioptimalkan R8. Mulai AGP 9.0, Anda kini dapat secara otomatis meng-deobfuscate stack trace dalam logcat Android Studio untuk build yang diproses R8, sehingga membantu Anda menunjukkan baris kode yang menyebabkan masalah, bahkan dalam aplikasi yang dioptimalkan sepenuhnya. Hal ini akan dibahas lebih mendalam dalam postingan blog besok tentang Minggu Sorotan Performa Android ini.
Langkah Berikutnya
Tonton pengantar Performance Spotlight Week untuk pengoptimal R8 di YouTube.
📣 Ikuti Tantangan Performa!
Sekarang saatnya Anda melihat sendiri manfaatnya.
Kami menantang Anda untuk mengaktifkan mode penuh R8 untuk aplikasi Anda hari ini.
- Ikuti panduan developer kami untuk memulai: Mengaktifkan pengoptimalan aplikasi.
- Periksa apakah Anda masih menggunakan
proguard-android.txtdan ganti denganproguard-android-optimize.txt. - Kemudian, ukur dampaknya. Jangan hanya merasakan perbedaannya, verifikasi perbedaannya. Ukur peningkatan performa Anda dengan mengadaptasi kode dari aplikasi contoh Macrobenchmark kami di GitHub untuk mengukur waktu peluncuran Anda sebelum dan sesudah.
Kami yakin Anda akan melihat peningkatan yang berarti dalam performa aplikasi Anda. Gunakan #optimizationEnabled untuk pertanyaan apa pun tentang cara mengaktifkan atau memecahkan masalah R8. Kami siap membantu.
Sampaikan pertanyaan Anda untuk sesi Tanya Jawab Android pada hari Jumat
Gunakan tag sosial #AskAndroid untuk mengajukan pertanyaan terkait performa. Sepanjang minggu ini, kami memantau pertanyaan Anda dan akan menjawab beberapa pertanyaan dalam sesi Tanya Android tentang performa pada hari Jumat, 21 November. Nantikan besok, saat kita akan membahas lebih dalam tentang proses men-debug dan memecahkan masalah. Namun untuk saat ini, mulailah menggunakan R8 dan dapatkan aplikasi Anda di jalur cepat.
Lanjutkan membaca
-
Acara & Program
Mulai dari kemampuan dasar pengoptimal R8 dan Pengoptimalan yang Dipandu Profil, hingga peningkatan performa dengan Jetpack Compose, hingga panduan baru tentang meningkatkan performa aplikasi Anda, kami telah membahas alat yang mudah digunakan dan berdampak besar yang Anda perlukan untuk membangun aplikasi berperforma tinggi.
Ben Weiss, Sara Hamilton • Waktu baca 3 menit
-
Acara & Program
September lalu, kami menyampaikan visi kami untuk masa depan Google Play Game yang didasarkan pada keyakinan inti: cara terbaik untuk mendorong kesuksesan game Anda adalah dengan memberikan pengalaman pemain kelas dunia.
Maru Ahues Bouza • Waktu baca 3 menit
-
Acara & Program
Google I/O kembali hadir! Bergabunglah dengan kami secara online saat kami membagikan terobosan dan info terbaru AI terbaru kami dalam produk di seluruh perusahaan, mulai dari Gemini hingga Android, Chrome, Cloud, dan lainnya.
Waktu baca: 1 menit
Terus dapatkan informasi
Dapatkan insight pengembangan Android terbaru yang dikirim ke kotak masuk Anda setiap minggu.