Anda dapat memeriksa apakah Profil Startup berfungsi menggunakan Android Studio atau melihat metadata build R8.
Mengonfirmasi dengan Android Studio
Untuk mengonfirmasi pengoptimalan tata letak DEX, gunakan Android Studio untuk membuka APK dan
memverifikasi class dalam file DEX. Pastikan classes.dex utama tidak
terisi penuh. Jika aplikasi Anda terdiri dari satu file DEX, Anda dapat memeriksa
apakah aplikasi berisi dua file DEX setelah mengaktifkan Profil Startup.
Android Studio akan memperingatkan Anda jika class startup tidak sesuai dalam satu file DEX.
Untuk mendapatkan informasi diagnostik yang mencakup jumlah metode non-startup di
class startup, pastikan compiler R8 diupdate ke setidaknya versi
8.3.21 dengan melakukan perubahan berikut pada file settings.gradle saat
Anda menerapkan Profil Startup:
Kotlin
pluginManagement { buildscript { repositories { mavenCentral() maven { url = uri("https://storage.googleapis.com/r8-releases/raw") } } dependencies { classpath("com.android.tools:r8:8.3.21") } } }
Groovy
pluginManagement { buildscript { repositories { mavenCentral() maven { url uri('https://storage.googleapis.com/r8-releases/raw') } } dependencies { classpath 'com.android.tools:r8:8.3.6-dev" } } }
Pastikan Anda menambahkan --info setelah
assembleRelease dalam perintah berikut saat membangun dengan Gradle.
./gradlew assembleRelease --info
Diagnostik kemudian dicetak ke terminal.
Jika aplikasi atau library apa pun mereferensikan API yang di-desugar, implementasi kompatibilitas yang di-bundle dari class ini selalu ada dalam file DEX terakhir. File DEX terakhir yang di-desugar ini tidak berpartisipasi dalam pengoptimalan tata letak DEX.
Konfirmasi dengan metadata paket
Mulai AGP 8.8, R8 akan menghasilkan metadata di Android App Bundle (AAB) yang dapat Anda gunakan untuk memeriksa apakah pengoptimalan tata letak DEX berhasil. Untuk memeriksa apakah pengoptimalan berhasil, lakukan hal berikut:
Buat AAB aplikasi Anda:
./gradlew app:bundleReleasePeriksa apakah ada setidaknya satu file DEX yang berisi teks
"startup": true.Buka metadata:
unzip -j -o path-to-aab BUNDLE-METADATA/com.android.tools/r8.json && jq .dexFiles r8.jsonJalur ke AAB Anda mungkin seperti
app/build/outputs/bundle/release/app-release.aab.Periksa output, yang akan terlihat seperti ini:
inflating: r8.json [ { "checksum": "f0b4b0ddb295812607f44efe03cf7a830056ccfddbdb81db3760d2281940e951", "startup": true } ]
Jika hanya melihat
"startup": falsedalam metadata, Anda perlu mengaktifkan profil startup dan memastikan bahwa profil startup Anda tidak di-obfuscate.Periksa apakah nilai SHA-256 dari metadata cocok dengan nilai dari AAB. Untuk mendapatkan nilai SHA-256 untuk semua file DEX Anda, jalankan perintah berikut:
unzip -o path-to-aab */dex/*.dex && sha256sum */dex/*Outputnya kurang lebih akan seperti ini:
Archive: app/build/outputs/bundle/release/myapp-release.aab inflating: base/dex/classes.dex f0b4b0ddb295812607f44efe03cf7a830056ccfddbdb81db3760d2281940e951 base/dex/classes.dexBandingkan nilai hash dengan nilai "checksum" dari langkah 1. Jika nilai SHA-256 tidak cocok, mungkin ada langkah kompilasi yang mengganggu kemampuan R8 untuk menghasilkan file DEX.