Les profils de démarrage sont un sous-ensemble des profils de référence. Le système de compilation utilise les profils de démarrage 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 uniquement.

Conditions requises
Nous vous recommandons d'utiliser des 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 inclure les paramètres suivants dans votre application:
- R8 activé. Pour votre build de publication, définissez
isMinifyEnabled = true
. - Optimisations de mise en page DEX 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 à suivre 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 du module de générateur de profils de référence dans Android Studio. Cela inclut les interactions de démarrage qui constituent un profil de démarrage de base. Pour enrichir ce profil de démarrage avec d'autres critical user journeys (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, par exemple en démarrant l'application depuis l'écran d'accueil ou en la lançant via un lien profond.
L'extrait de code suivant montre un générateur de profil 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 (Générer un profil de référence pour l'application) et recherchez les règles du profil de démarrage à l'emplacement src/<variant>/generated/baselineProfiles/startup-prof.txt
.
Considérations à prendre en compte lors de la création de profils de démarrage
La sortie des classes et des méthodes d'un profil de démarrage est limitée par la taille du premier fichier classes.dex. Cela signifie que tous les parcours de profil de référence ne doivent pas non plus être des parcours de profil de démarrage.
Pour déterminer les parcours utilisateur à couvrir lors de la création d'un profil de démarrage, réfléchissez à l'endroit où la plupart des utilisateurs lancent l'application. En général, il s'agit du lanceur d'applications et après la connexion. 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 des applications suivent cette liste:
- Activité du lanceur d'applications principale
- 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 saturé. Pour couvrir d'autres parcours par la suite, déplacez le code du chemin de démarrage et ajoutez d'autres parcours. Pour déplacer du code hors du chemin de démarrage, inspectez les traces Perfetto au démarrage de l'application et recherchez les opérations de longue durée. Vous pouvez également utiliser un 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