L'optimisation du code DEX est un résultat Android Vitals qui vous aide à surveiller et à améliorer la qualité de compilation, la taille et les performances de votre application. L'optimisation et l'obscurcissement de votre code à l'aide de R8 ou d'outils alternatifs (tels que des optimiseurs compatibles avec ProGuard ou des post-processeurs DEX secondaires) réduisent la taille DEX de votre application, améliorent les performances d'exécution et minimisent son empreinte mémoire.
Les fichiers DEX, ou Dalvik Executable, contiennent le code compilé utilisé pour exécuter votre application. Il s'agit généralement de code Java et Kotlin, par opposition au code C++ compilé ou aux fichiers .so.
Les rapports Android Vitals contiennent des métriques d'optimisation du code DEX pour toutes les applications et tous les jeux, mais n'appliquent des seuils que pour les applications et les jeux qui répondent à des exigences de taille spécifiques.
Détecter le problème
Android Vitals peut vous alerter lorsque les niveaux d'optimisation du code DEX de votre application sont faibles. Cela inclut l'obscurcissement, la minification et l'optimisation des applications et des jeux qui utilisent R8. Pour les applications qui n'utilisent pas R8, Android Vitals tente de vérifier les taux d'optimisation, de réduction et d'obscurcissement, mais revient aux heuristiques d'obscurcissement comme proxy si nécessaire.
Surveiller l'état de l'optimisation
Android Vitals peut vous aider à améliorer les performances de votre application en vous alertant via la Play Console lorsque votre application ne respecte pas les pourcentages minimaux définis pour l'optimisation du code. Pour obtenir des définitions détaillées de la réduction, de l'optimisation et de l'obscurcissement, consultez Utiliser l'analyseur de configuration R8.
Pour les applications créées avec le dernier correctif du plug-in Android Gradle version 8.10 ou ultérieure, ces pourcentages sont extraits du fichier r8.json inclus.
Pour les versions antérieures d'AGP ou lorsque le fichier r8.json n'est pas inclus, les pourcentages sont calculés à partir du fichier mapping.txt, s'il est inclus, ou à l'aide d'heuristiques DEX si le fichier de mappage n'est pas disponible.
Pour les applications optimisées avec un autre outil d'optimisation du code, Android Vitals effectue une analyse pour estimer le pourcentage de classes, de méthodes et de champs obscurcis dans l'app bundle.
Tailles minimales totales du DEX
Bien qu'Android Vitals calcule les métriques d'optimisation du code pour toutes les applications, vous ne recevrez d'alertes que si votre app bundle répond aux exigences suivantes concernant la taille totale du fichier DEX :
- Applications : le bundle contient au moins 10 Mo de code DEX (taille non compressée).
- Jeux : le bundle contient au moins 50 Mo de code DEX (taille non compressée).
Android Vitals affiche la taille DEX de votre application, mais vous pouvez également la mesurer localement à l'aide de la ligne de commande :
unzip -l <yourapp>.aab | grep -E '\.dex$' | awk '{sum+=$1} END {print sum}'
Pour inspecter les métadonnées exactes qu'Android Vitals utilise pour calculer vos scores, extrayez le fichier r8.json de votre app bundle :
unzip -p <yourapp>.aab BUNDLE-METADATA/com.android.tools/r8.json