In diesem Dokument wird der Unterschied zwischen Baseline-Profilen und Startup-Profilen erläutert.
Mit dem Baseline Profile Gradle-Plug-in können Sie automatisch die von BaselineProfileRule-Tests generierten, für Menschen lesbaren Baseline-Profildateien erfassen. Beim Erstellen der App kompiliert das Android Gradle-Plug-in (AGP) diese für Menschen lesbaren Profilregeln in ein binäres Format, das als baseline.prof im Android Package Kit (APK) oder Android App Bundle (AAB) enthalten ist.Die Android-Laufzeit (ART) kann dieses Format effektiv für die On-Device-Kompilierung verwenden, sofern das binäre Profil kleiner als 1,5 MB ist.
Die erstellten Profildateien heißen in der Regel startup-prof.txt und baseline-prof.txt.
Baseline-Profil
Die Baseline Profile-Datei enthält eine umfassende Reihe von Regeln, die ART verwendet, um häufig verwendete Codepfade vorzukompilieren. Dadurch wird der App-Start optimiert, die Interaktionsruckler werden reduziert und die allgemeine Laufzeitleistung verbessert.
Die Baseline Profile-Datei ist in der Regel eine Obermenge der Regeln in Ihrem Startup Profile. Diese Datei enthält alle Regeln, die für die Optimierung des App-Starts erforderlich sind (generiert über die Gradle-Aufgabe baselineProfile), sowie zusätzliche Profile für andere wichtige Nutzeraktionen. Dazu gehören beispielsweise das Scrollen und das Navigieren auf verschiedenen Bildschirmen.
Diese Regeln werden unabhängig vom Wert des Konfigurationsfelds includeInStartupProfile generiert. Weitere Informationen finden Sie unter Übersicht zu Baseline-Profilen.
Start-up-Profil
Die Datei „Startup Profile“ enthält Regeln, die speziell für den Startpfad Ihrer App optimiert sind. Während der Kompilierung verwenden D8 und R8 Java-Bytecode, um Dalvik-Ausführungsdateien (DEX) zu erstellen. Sowohl D8 als auch R8 verwenden Startprofile, um das DEX-Layout zu optimieren. Dazu wird kritischer Startcode in der primären .dex-Datei platziert, um das Laden von Klassen zu beschleunigen. Um die größten Leistungssteigerungen zu erzielen, muss der Startcode in dieser primären .dex-Datei enthalten sein. Wenn die kumulative Größe des Startcodes zu groß ist, wird er in nachfolgende DEX-Dateien übertragen, die oft mit nicht essenziellen Klassen und Methoden gefüllt sind, was den Start verlangsamt.
Ein Startup-Profil enthält die Metadaten, die für die Optimierung des DEX-Layouts erforderlich sind. Die R8-Codeoptimierung kann diesen Prozess jedoch erheblich unterstützen. Durch das Entfernen von nicht verwendetem Code und das Minimieren von Bytecode reduziert R8 den gesamten Umfang der Startlogik. Durch diese Reduzierung ist es wahrscheinlicher, dass der kritische Code in der primären .dex-Datei verbleibt. So wird ein Überlauf verhindert und eine effizientere Ausführung auf einer größeren Bandbreite von Android-Versionen gewährleistet.
Im Allgemeinen sollten Sie includeInStartupProfile nur für Testszenarien, die für die erste Anzeige der App unerlässlich sind, auf true festlegen.
Weitere Informationen finden Sie unter Übersicht über Startprofile.