Pengoptimalan kode DEX

Pengoptimalan kode DEX adalah temuan Android vitals yang membantu Anda memantau dan meningkatkan kualitas, ukuran, dan performa kompilasi aplikasi Anda. Mengoptimalkan dan meng-obfuscate kode menggunakan R8 atau alat alternatif (seperti pengoptimal yang kompatibel dengan ProGuard atau pasca-pemroses DEX sekunder) akan mengurangi ukuran DEX aplikasi Anda, meningkatkan performa runtime, dan meminimalkan jejak memori.

File DEX, atau Dalvik Executable, berisi kode yang dikompilasi yang digunakan untuk menjalankan aplikasi Anda. Biasanya mencakup kode Java dan Kotlin, bukan kode C++ yang dikompilasi atau file .so.

Android vitals melaporkan metrik pengoptimalan kode DEX untuk semua aplikasi dan game, tetapi hanya menerapkan nilai minimum untuk aplikasi dan game yang memenuhi persyaratan ukuran tertentu.

Mendeteksi masalah

Android vitals dapat memberi tahu Anda jika tingkat pengoptimalan kode DEX aplikasi Anda rendah. Hal ini mencakup obfuscation, penyusutan, dan pengoptimalan untuk aplikasi dan game yang menggunakan R8. Untuk aplikasi yang tidak menggunakan R8, Android vitals mencoba memeriksa tingkat pengoptimalan, penyusutan, dan pengaburan, tetapi akan kembali ke heuristik pengaburan sebagai proxy jika diperlukan.

Memantau status pengoptimalan

Android vitals dapat membantu meningkatkan performa aplikasi dengan memberi tahu Anda melalui Konsol Play jika aplikasi Anda tidak memenuhi persentase minimum yang ditentukan untuk pengoptimalan kode. Untuk mengetahui definisi mendetail tentang penyusutan, pengoptimalan, dan peng-obfuscate-an, lihat Menggunakan R8 Configuration Analyzer.

Untuk aplikasi yang dibangun dengan patch terbaru AGP versi 8.10 atau yang lebih tinggi, persentase ini diambil dari file r8.json yang disertakan.

Untuk versi AGP yang lebih rendah atau jika file r8.json tidak disertakan, persentase dihitung dari file mapping.txt jika disertakan, atau menggunakan heuristik DEX jika file pemetaan tidak tersedia.

Untuk aplikasi yang dioptimalkan dengan pengoptimal kode alternatif, Android vitals melakukan analisis untuk memperkirakan persentase class, metode, dan kolom yang di-obfuscate dalam app bundle.

Minimum total ukuran DEX

Meskipun Android vitals menghitung metrik pengoptimalan kode untuk semua aplikasi, Anda hanya akan menerima pemberitahuan jika app bundle Anda memenuhi persyaratan ukuran DEX total berikut:

  • Aplikasi: Bundle berisi kode DEX minimal 10 MB yang diukur sebagai ukuran tidak terkompresi
  • Game: Bundle berisi kode DEX minimal 50 MB yang diukur sebagai ukuran yang tidak dikompresi

Android vitals menampilkan ukuran DEX aplikasi Anda, tetapi Anda juga dapat mengukurnya secara lokal menggunakan command line:

  unzip -l <yourapp>.aab | grep -E '\.dex$' | awk '{sum+=$1} END {print sum}'

Untuk memeriksa metadata persis yang digunakan Android vitals untuk menghitung skor Anda, ekstrak file r8.json dari app bundle Anda:

unzip -p <yourapp>.aab BUNDLE-METADATA/com.android.tools/r8.json