Start-Profile sind eine Teilmenge der Baseline-Profile. Start-Profile werden vom Build-System verwendet, um die darin enthaltenen Klassen und Methoden weiter zu optimieren, indem das Layout des Codes in den DEX-Dateien Ihres APKs verbessert wird. Mit Startprofilen ist der App-Start in der Regel zwischen 15% und 30% schneller als nur mit Baseline-Profilen.

Voraussetzungen
Wir empfehlen die Verwendung von Startprofilen mit den folgenden Tools:
- Jetpack Macrobenchmark 1.2.0 oder höher
- Android Gradle Plugin 8.2 oder höher
- Android Studio Iguana oder höher
Außerdem sind in Ihrer App die folgenden Einstellungen erforderlich:
- R8 ist aktiviert. Legen Sie für Ihren Release-Build
isMinifyEnabled = true
fest. - DEX-Layoutoptimierungen aktiviert Legen Sie im Block
baselineProfile {}
der Build-Datei des App-ModulsdexLayoutOptimization = true
fest.
Startprofil erstellen
Wenn Sie die Standardvorlage „Baseline Profile Generator“ verwenden, erstellt Android Studio neben einem Baseline-Profil auch ein Startprofil.
Die allgemeinen Schritte zum Erstellen und Generieren eines Startprofils sind dieselben wie beim Erstellen eines Baseline-Profils.
Standardmäßig wird ein Startprofil mit der Vorlage „Baseline Profile Generator“ in Android Studio erstellt. Dazu gehören auch Startinteraktionen, die ein grundlegendes Startprofil bilden. Wenn Sie dieses Startprofil um weitere kritische Nutzerpfade (Critical User Journeys, CUJs) ergänzen möchten, fügen Sie die CUJs für den App-Start einem rule
-Block hinzu, für den includeInStartupProfile
auf true
festgelegt ist. Bei einfachen Apps reicht es möglicherweise aus, die MainActivity
der App zu starten. Bei komplexeren Apps sollten Sie die gängigsten Einstiegspunkte in Ihre App einfügen, z. B. das Starten der App über den Startbildschirm oder das Starten über einen Deeplink.
Das folgende Code-Snippet zeigt einen Generator für Baseline-Profile (standardmäßig die BaselineProfileGenerator.kt
-Datei), mit dem Ihre App vom Startbildschirm aus gestartet und ein Deeplink geöffnet wird. Der Deeplink führt direkt zum Nachrichtenfeed der App und nicht zum Startbildschirm.
@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")
})
}
}
}
Führen Sie die Konfiguration Baseline-Profil für App generieren aus und suchen Sie unter src/<variant>/generated/baselineProfiles/startup-prof.txt
nach den Regeln für das Startprofil.
Hinweise zum Erstellen von Startup-Profilen
Die Ausgabe der Klassen und Methoden eines Startprofils ist durch die Größe der ersten classes.dex-Datei begrenzt. Das bedeutet, dass nicht alle Journeys für das Ausgangsprofil auch Journeys für das Start-up-Profil sein sollten.
Um zu entscheiden, welche User Journeys Sie beim Erstellen eines Start-up-Profils abdecken sollten, überlegen Sie, wo die meisten Nutzer die Anwendung starten. Normalerweise geschieht dies über den Launcher und nachdem sich der Nutzer angemeldet hat. Dies ist auch der einfachste Pfad für das Baseline-Profil.
Nachdem der erste Anwendungsfall behandelt wurde, folgen Sie dem Nutzertrichter für den App-Start. In vielen Fällen folgen App-Start-Trichter dieser Liste:
- Aktivität des Haupt-Launchers
- Benachrichtigungen, die den App-Start auslösen
- Optionale Launcher-Aktivitäten
Gehen Sie diese Liste von oben nach unten durch und beenden Sie die Bearbeitung, bevor „classes.dex“ voll ist. Wenn Sie später weitere Aufrufabfolgen abdecken möchten, verschieben Sie den Code aus dem Startpfad und fügen Sie weitere Aufrufabfolgen hinzu. Wenn Sie Code aus dem Startpfad entfernen möchten, prüfen Sie die Perfetto-Traces beim Starten der App und suchen Sie nach lang laufenden Vorgängen. Sie können auch einen Makrobenchmark mit aktiviertem Methoden-Tracing verwenden, um eine automatisierbare und vollständige Übersicht über die Methodenaufrufe beim Starten der App zu erhalten.
Empfehlungen für dich
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Baseline-Profile erstellen {:#creating-profile-rules}
- Baseline-Profile {:#baseline-profiles}
- Microbenchmark schreiben