Profile uruchamiania są podzbiorem profili podstawowych. Profile uruchamiania są używane przez system kompilacji do dalszej optymalizacji klas i metod, które zawierają, poprzez poprawę układu kodu w plikach DEX pakietu APK. Dzięki profilom uruchamiania uruchamianie aplikacji jest zwykle o 15–30% szybsze niż w przypadku samych profili podstawowych.
Więcej informacji znajdziesz w artykule Omówienie profili uruchamiania.
Wymagania
Zalecamy używanie profili uruchamiania z tymi narzędziami:
- Jetpack Macrobenchmark w wersji 1.2.0 lub nowszej
- Wtyczka Androida do obsługi Gradle (AGP) w wersji 8.2 lub nowszej
- Android Studio Iguana lub nowsze
Oprócz tego w aplikacji musisz mieć te ustawienia:
- Włączona usługa R8. W przypadku kompilacji do publikacji ustaw
isMinifyEnabled = true. - Włączona optymalizacja układu DEX. Jest ona dostępna tylko od wersji AGP 8.1 i jest domyślnie włączona od wersji AGP 8.3. W przypadku wersji AGP od 8.1 do 8.2 w bloku
baselineProfile {}pliku kompilacji modułu aplikacji ustawdexLayoutOptimization = true.
Tworzenie profilu uruchamiania
Android Studio tworzy profil uruchamiania wraz z profilem podstawowym, gdy używasz domyślnego szablonu generatora profili podstawowych.
Domyślny sposób tworzenia profilu uruchamiania polega na użyciu szablonu modułu generatora profili podstawowych w Android Studio. Obejmuje to interakcje uruchamiania, które tworzą podstawowy profil uruchamiania. Aby rozszerzyć ten profil uruchamiania o więcej najważniejszych ścieżek użytkownika, dodaj ścieżki uruchamiania aplikacji do bloku rule z ustawieniem includeInStartupProfile na true. W przypadku prostych aplikacji może wystarczyć uruchomienie MainActivity aplikacji. W przypadku bardziej złożonych aplikacji rozważ
dodanie najczęstszych punktów wejścia do aplikacji, takich jak uruchamianie aplikacji z
ekranu głównego lub uruchamianie za pomocą precyzyjnego linku.
Ten fragment kodu pokazuje generator profili podstawowych (domyślnie plik BaselineProfileGenerator.kt), który obejmuje uruchamianie aplikacji z ekranu głównego i uruchamianie za pomocą precyzyjnego linku. Precyzyjny link prowadzi bezpośrednio do kanału wiadomości aplikacji, a nie do jej ekranu głównego.
@RunWith(AndroidJUnit4::class)
@LargeTest
class BaselineProfileGenerator {
@get:Rule
val rule = BaselineProfileRule()
@Test
fun generate() {
rule.collect(
packageName = "com.example.app",
includeInStartupProfile = true
) {
uiAutomator {
// Launch directly into the NEWS_FEED using startActivityIntent
startIntent(Intent().apply {
setPackage(packageName)
setAction("com.example.app.NEWS_FEED")
})
}
}
}
Uruchom konfigurację Generate Baseline Profile for app i znajdź reguły profilu uruchamiania w pliku
Startup Profile rules at
src/<variant>/generated/baselineProfiles/startup-prof.txt, gdzie są one
automatycznie wykorzystywane przez AGP.
Wskazówki dotyczące tworzenia profili uruchamiania
Aby zdecydować, które ścieżki użytkownika uwzględnić podczas tworzenia profilu uruchamiania, zastanów się, gdzie większość użytkowników rozpoczyna korzystanie z aplikacji. Zwykle jest to launcher i po zalogowaniu. Jest to też najbardziej podstawowa ścieżka profilu podstawowego.
Po uwzględnieniu pierwszego przypadku użycia postępuj zgodnie z lejkiem użytkownika podczas uruchamiania aplikacji. W wielu przypadkach lejki uruchamiania aplikacji są zgodne z tą listą:
- Główna aktywność launchera
- Powiadomienia, które uruchamiają aplikację
- Opcjonalne aktywności launchera
Przejdź przez tę listę od góry i zatrzymaj się, zanim plik classes.dex zostanie zapełniony. Aby później uwzględnić więcej ścieżek, przenieś kod ze ścieżki uruchamiania i dodaj więcej ścieżek. Aby przenieść kod ze ścieżki uruchamiania, sprawdź ślady Perfetto podczas uruchamiania aplikacji i poszukaj długotrwałych operacji. Możesz też użyć makrobenchmarku
z włączonym śledzeniem metod, aby uzyskać automatyczny i pełny widok wywołań metod
podczas uruchamiania aplikacji.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy język JavaScript jest wyłączony.
- Tworzenie profili podstawowych {:#creating-profile-rules}
- Profile podstawowe {:#baseline-profiles}
- Pisanie mikropomiaru