La dernière évolution du runtime ART a changé la donne pour le lancement des apps Android. Les gains de vitesse de lancement et d’optimisation mémoire influent directement sur la perception utilisateur.
Pour les équipes mobile, l’équilibre entre compilation anticipée et profilage dynamique devient central pour la performance. Les points suivants synthétisent bénéfices, options et pratiques à retenir.
A retenir :
- Compilation anticipée AOT combinée au profilage JIT pour gains mesurables
- Fluidité d’exécution accrue et meilleure autonomie batterie sur appareils récents
- Filtres modulaires dexpreopt pour compromis stockage versus performance selon besoins
- Mises à jour ART via Play Store sans dépendance système
ART et runtime Android : impact sur le temps de compilation
Après ces points clés, examinons comment ART réduit concrètement le temps de compilation. La combinaison d’AOT et de JIT guide la génération d’artefacts optimisés pour l’exécution.
Composants clés du runtime et rôle dans la compilation
Il décrit les composants du runtime et leur rôle dans la compilation. Comprendre dex2oat, libart.so et profils JIT clarifie les choix de filtre.
Composant
Rôle
Effet sur temps de compilation
dex2oat
Compile DEX en code natif
Réduit compilation à l’exécution, charge initiale augmentée
libart.so
Environnement d’exécution chargé au démarrage
Charge les artefacts, influence démarrage des apps
Profils JIT
Guident compilation AOT progressive
Optimisent méthodes critiques sans recompilation complète
Fichiers .art / .oat
Contiennent code machine optimisé
Accélèrent exécution après installation
Points des composants :
- dex2oat parallèle pour réduire latence de build
- libart.so chargé tôt pour amortir coût de démarrage
- profils JIT conservant méthodes chaudes pour recompilation ciblée
- artefacts .oat permettant exécution native sans bytecode répété
Profilage JIT et artefacts .art/.oat pour la mise au point
Ce H3 relie la notion de composants aux effets concrets observés sur appareils. Le profilage JIT permet de cibler la compilation AOT sur les chemins critiques d’exécution des applications.
« J’ai observé un démarrage d’application plus rapide après l’activation du profilage speed-profile sur nos builds pilotes. »
Alice D.
Selon Android Open Source Project, la combinaison AOT/JIT augmente l’efficacité sans sacrifier la compatibilité. La configuration des threads et de l’affinité CPU évite la contention et réduit les durées de dex2oat.
Ces éléments montrent pourquoi les choix de filtres influent sur la taille et la rapidité d’amorçage. Ce diagnostic prépare l’étude des réglages concrets pour équilibrer stockage et performance.
Configurer ART pour réduire le temps de compilation des applications
Ces constats rendent la configuration des paramètres dex2oat et des filtres d’autant plus décisive. Le réglage fin des flags permet de mesurer des compromis entre empreinte et performance.
Options de dexpreopt et filtres de compilation
Cette section relie les mécanismes généraux aux options pratiques disponibles pour les builds. La directive dexpreopt précompile les applications système lors de la création de l’image et réduit temps d’exécution ultérieurs.
Choix des filtres :
- verify pour empreinte réduite, compilation minimale
- speed pour composants critiques, compilation AOT complète
- speed-profile pour compromis espace/performance guidé par usage
- everything pour performance maximale au coût d’espace
« Nous avons choisi speed-profile pour certaines apps système et mesuré un compromis espace/temps favorable. »
Marc L.
Selon Android Developers Blog, des améliorations récentes ont réduit les temps de compilation mesurables. Les flags PRODUCT_DEX_PREOPT_DEFAULT_FLAGS permettent d’affiner la compilation module par module.
Filtres officiels, usages recommandés et impact sur la Plateforme Android
Ce H3 relie les recommandations aux scénarios d’usage sur la Plateforme Android. Le choix de filtre dépend du composant visé, par exemple SystemServer ou SystemUI pour prioriser la vitesse.
Filtre
Description
Usage recommandé
verify
Vérifie bytecode sans AOT
Images avec stockage restreint
speed
Compilation AOT plus complète
Apps critiques pour performance au démarrage
speed-profile
Compilation guidée par profil JIT puis AOT
Bon compromis espace/performance
everything
Compilation AOT exhaustive
Maximum performance au coût d’espace
Selon Wikipédia, ces filtres existent officiellement depuis Android 8 et restent pertinents en 2026. Le choix adapté permet d’optimiser la vitesse d’amorçage des applications mobile.
Le passage à l’optimisation opérationnelle nécessite des stratégies de compilation en arrière-plan et des mises à jour OTA. Les sections suivantes abordent ces opérations et leurs réglages concrets.
Optimisation opérationnelle : compilation en arrière-plan et OTA
Le passage opérationnel demande des scripts de compilation asynchrone et des seuils adaptés pour limiter l’impact utilisateur. L’approche A/B et la compilation en arrière-plan permettent de précompiler sans pénaliser les utilisateurs finaux.
Compilation background, profils et gains mesurables
Ce H3 explique comment la compilation en arrière-plan utilise des profils pour recompiler efficacement les méthodes chaudes. Les paramètres dalvik.vm.bgdexopt contrôlent le déclenchement et limitent recompilations inutiles.
Paramètres de compilation :
- dalvik.vm.bgdexopt.new-methods-percent pour seuils de recompilation
- dalvik.vm.bgdexopt.new-classes-percent pour limiter opérations en fond
- affinité CPU et threads dex2oat pour réduire contention
- A/B OTA pour précompiler code sans impact utilisateur
« Après l’intégration des scripts d’OTA, nos builds clients ont montré des démarrages plus constants et plus rapides. »
Sophie R.
Selon Android Developers Blog, certaines mises en œuvre ont donné des gains mesurables sur les temps de compilation. Ces pratiques améliorent la stabilité et la performance perçue par l’utilisateur.
Cas pratiques, retours d’expérience et recommandations
Ce H3 rassemble retours et recommandations opérationnelles pour équipes mobiles et intégrateurs. Tester combinaisons de filtres reste la méthode la plus sûre pour équilibrer espace et vitesse de lancement.
« L’optimisation fine des flags a réduit nos temps de maintenance et amélioré la qualité perçue des apps. »
Jean P.
Selon Android Open Source Project, la configuration des ensembles CPU et du nombre de threads dex2oat évite plantages et optimise le temps global de compilation. Ces recommandations conviennent aux équipes de production.
Source : Android Developers Blog, «18% Faster Compiles, 0% Compromises», Android Developers Blog, 2025 ; Android Open Source Project, «Configuring ART», Android Open Source Project, 2024 ; Wikipédia, «ART (Android)», Wikipédia, 2026.