Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Vous pouvez vérifier que vos profils de démarrage fonctionnent à l'aide d'Android Studio ou en examinant les métadonnées de compilation R8.
Vérifier avec Android Studio
Pour confirmer l'optimisation de la mise en page DEX, utilisez Android Studio pour ouvrir l'APK et vérifier les classes dans les fichiers DEX. Assurez-vous que l'classes.dex principale n'est pas complètement remplie. Si votre application se compose d'un seul fichier DEX, vous pouvez vérifier si elle contient deux fichiers DEX après avoir activé le profil de démarrage.
Android Studio vous avertit si les classes de démarrage ne rentrent pas dans un seul fichier DEX.
Pour obtenir des informations de diagnostic incluant le nombre de méthodes non de démarrage dans les classes de démarrage, assurez-vous que le compilateur R8 est mis à jour vers la version 8.3.36-dev ou une version ultérieure en apportant les modifications suivantes au fichier settings.gradle lorsque vous appliquez le profil de démarrage:
Assurez-vous d'ajouter --info après assembleRelease dans la commande suivante lors de la compilation avec Gradle.
./gradlew assembleRelease --info
Le diagnostic est ensuite imprimé dans le terminal.
Si votre application ou des bibliothèques font référence à des API désucrées, les implémentations de compatibilité groupées de ces classes sont toujours contenues dans le dernier fichier DEX. Ce dernier fichier DEX désucré ne participe pas aux optimisations de mise en page DEX.
Vérifier avec les métadonnées du groupe
À partir de la version AGP 8.8, R8 génère des métadonnées dans votre Android App Bundle (AAB) que vous pouvez utiliser pour vérifier si l'optimisation de la mise en page DEX a réussi. Pour vérifier si l'optimisation a fonctionné, procédez comme suit:
Créez l'AAB de votre application:
./gradlew app:bundleRelease
Vérifiez qu'au moins un fichier DEX contient le texte "startup": true.
Si vous ne voyez que "startup": false dans les métadonnées, vous devez activer les profils de démarrage et vous assurer que votre profil de démarrage n'est pas masqué.
Vérifiez que les valeurs SHA-256 des métadonnées correspondent à celles de l'AAB. Pour obtenir les valeurs SHA-256 de tous vos fichiers DEX, exécutez la commande suivante:
Comparez les valeurs de hachage aux valeurs de "somme de contrôle" de l'étape 1. Si les valeurs SHA-256 ne correspondent pas, une étape de compilation peut interférer avec la capacité de R8 à générer des fichiers DEX.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (UTC)."],[],[],null,["# Confirm Startup Profiles optimization\n\nYou can check that your Startup Profiles are working using either Android Studio\nor looking at the R8 build metadata.\n\nConfirm with Android Studio\n---------------------------\n\nTo confirm DEX layout optimization, use Android Studio to open the APK and\nverify the classes in the DEX files. Make sure the primary `classes.dex` isn't\ncompletely filled. If your app consists of a single DEX file, you can check\nwhether the app contains two DEX files after enabling the Startup Profile.\n\nAndroid Studio warns you if the startup classes don't fit in a single DEX file.\nTo get diagnostic information that includes the amount of non-startup methods in\nthe startup classes, make sure the R8 compiler is updated to at least version\n8.3.36-dev by making the following changes to the `settings.gradle` file when\nyou apply the Startup Profile: \n\n### Kotlin\n\n```kotlin\npluginManagement {\n buildscript {\n repositories {\n mavenCentral()\n maven {\n url = uri(\"https://storage.googleapis.com/r8-releases/raw\")\n }\n }\n dependencies {\n classpath(\"com.android.tools:r8:8.3.6-dev\")\n }\n }\n}\n```\n\n### Groovy\n\n```groovy\npluginManagement {\n buildscript {\n repositories {\n mavenCentral()\n maven {\n url uri('https://storage.googleapis.com/r8-releases/raw')\n }\n }\n dependencies {\n classpath 'com.android.tools:r8:8.3.6-dev\"\n }\n }\n}\n```\n\nMake sure you add `--info` after\n`assembleRelease` in the following command when building with Gradle. \n\n ./gradlew assembleRelease --info\n\nThe diagnostic is then printed to the terminal.\n\nIf your app or any libraries reference any [desugared APIs](/studio/write/java8-support#library-desugaring), the bundled\ncompatibility implementations of these classes are always contained in the last\nDEX file. This desugared last DEX file doesn't participate in DEX layout\noptimizations.\n\nConfirm with bundle metadata\n----------------------------\n\n| **Note:** This workflow has only been tested on Linux.\n\nStarting with AGP 8.8, R8 outputs metadata in your Android App Bundle (AAB) that\nyou can use to check if the DEX layout optimization was successful. To check if\nthe optimization worked, do the following:\n\n1. Build your app's AAB:\n\n ./gradlew app:bundleRelease\n\n2. Check that there's at least one DEX file that contains the text\n `\"startup\": true`.\n\n 1. Open the metadata:\n\n unzip -j -o \u003cvar translate=\"no\"\u003epath-to-aab\u003c/var\u003e BUNDLE-METADATA/com.android.tools/r8.json && jq .dexFiles r8.json\n\n The path to your AAB might be something like\n `app/build/outputs/bundle/release/app-release.aab`.\n 2. Check the output, which should look something like this:\n\n inflating: r8.json\n [\n {\n \"checksum\": \"f0b4b0ddb295812607f44efe03cf7a830056ccfddbdb81db3760d2281940e951\",\n \"startup\": true\n }\n ]\n\n If you only see `\"startup\": false` in the metadata, you need to\n [enable startup profiles](/topic/performance/baselineprofiles/dex-layout-optimizations#create-startup) and ensure that your startup\n profile isn't obfuscated.\n3. Check that the SHA-256 values from the metadata match those from the AAB. To\n get the SHA-256 values for all your DEX files run the following:\n\n unzip -o \u003cvar translate=\"no\"\u003epath-to-aab\u003c/var\u003e */dex/*.dex && sha256sum */dex/*\n\n The output should look something like this: \n\n Archive: app/build/outputs/bundle/release/myapp-release.aab\n inflating: base/dex/classes.dex\n f0b4b0ddb295812607f44efe03cf7a830056ccfddbdb81db3760d2281940e951 base/dex/classes.dex\n\n Compare the hash values to the \"checksum\" values from step 1. If the SHA-256\n values don't match, there might be a compilation step interfering with R8's\n ability to output DEX files."]]