Les profils de démarrage sont un sous-ensemble des profils de référence. Les profils de démarrage sont utilisés par le système de compilation pour optimiser davantage les classes et les méthodes qu'ils contiennent en améliorant la mise en page du code dans les fichiers DEX de votre APK. Avec les profils de démarrage, le démarrage de votre application est généralement entre 15 % et 30 % plus rapide qu'avec les profils de référence seuls.

Conditions requises
Nous vous recommandons d'utiliser les profils de démarrage avec les outils suivants :
- Jetpack Macrobenchmark 1.2.0 ou version ultérieure
- Plug-in Android Gradle 8.2 ou version ultérieure
- Android Studio Iguana ou version ultérieure
De plus, vous devez définir les paramètres suivants dans votre application :
- R8 activé. Pour votre build de version, définissez
isMinifyEnabled = true
. - Les optimisations de mise en page DEX sont activées. Dans le bloc
baselineProfile {}
du fichier de compilation du module d'application, définissezdexLayoutOptimization = true
.
Créer un profil de démarrage
Android Studio crée un profil de démarrage en plus d'un profil de référence lorsque vous utilisez le modèle de générateur de profils de référence par défaut.
La procédure générale pour créer et générer un profil de démarrage est la même que celle pour créer un profil de référence.
La méthode par défaut pour créer un profil de démarrage consiste à utiliser le modèle de module du générateur de profils de référence dans Android Studio. Cela inclut les interactions de démarrage qui forment un profil de démarrage de base. Pour augmenter ce profil de démarrage avec d'autres parcours utilisateur critiques (CUJ), ajoutez les CUJ de démarrage de votre application à un bloc rule
avec includeInStartupProfile
défini sur true
. Pour les applications simples, le lancement de la MainActivity
de l'application peut suffire. Pour les applications plus complexes, envisagez d'ajouter les points d'entrée les plus courants dans votre application, par exemple le démarrage de l'application depuis l'écran d'accueil ou le lancement dans un lien profond.
L'extrait de code suivant montre un générateur de profils de référence (par défaut, le fichier BaselineProfileGenerator.kt
) qui inclut le démarrage de votre application depuis l'écran d'accueil et le lancement dans un lien profond. Le lien profond redirige directement vers le flux d'actualités de l'application, et non vers son écran d'accueil.
@RunWith(AndroidJUnit4::class)
@LargeTest
class BaselineProfileGenerator {
@get:Rule
val rule = BaselineProfileRule()
@Test
fun generate() {
rule.collect(
packageName = "com.example.app",
includeInStartupProfile = true
) {
// Launch directly into the NEWS_FEED.
startActivityAndWait(Intent().apply {
setPackage(packageName)
setAction("com.example.app.NEWS_FEED")
})
}
}
}
Exécutez la configuration Generate Baseline Profile for app et recherchez les règles du profil de démarrage à l'adresse src/<variant>/generated/baselineProfiles/startup-prof.txt
.
Éléments à prendre en compte pour créer des profils de start-up
Pour décider quels parcours utilisateur couvrir lors de la création d'un profil de démarrage, réfléchissez à l'endroit où la plupart des utilisateurs commencent l'application. Il s'agit généralement du lanceur d'applications et après que l'utilisateur s'est connecté. Il s'agit également du parcours de profil de référence le plus basique.
Une fois le premier cas d'utilisation couvert, suivez l'entonnoir utilisateur pour le démarrage de l'application. Dans de nombreux cas, les entonnoirs de démarrage d'application suivent cette liste :
- Activité principale du lanceur d'applications
- Notifications qui déclenchent le démarrage de l'application
- Activités du lanceur d'applications facultatives
Parcourez cette liste de haut en bas et arrêtez-vous avant que classes.dex ne soit plein. Pour couvrir plus de parcours par la suite, déplacez le code hors du chemin de démarrage et ajoutez d'autres parcours. Pour déplacer le code hors du chemin de démarrage, inspectez les traces Perfetto lors du démarrage de l'application et recherchez les opérations de longue durée. Vous pouvez également utiliser une macrobenchmark avec le traçage de méthode activé pour obtenir une vue complète et automatisable des appels de méthode lors du démarrage de l'application.
Recommandations personnalisées
- Remarque : Le texte du lien s'affiche lorsque JavaScript est désactivé.
- Créer des profils de référence {:#creating-profile-rules}
- Profils de référence {:#baseline-profiles}
- Écrire un microbenchmark