Profile uruchamiania to podzbiór profili podstawowych. Profile uruchamiania są używane przez system kompilacji do dalszej optymalizacji klas i metod, które zawierają, poprzez ulepszanie układu kodu w plikach DEX w pliku APK. Dzięki profilom uruchamiania aplikacji uruchamianie aplikacji jest zwykle o 15–30% szybsze niż w przypadku samych profili podstawowych.

Wymagania
Zalecamy używanie profili startowych w przypadku tych narzędzi:
- Jetpack Macrobenchmark w wersji 1.2.0 lub nowszej
- Wtyczka Androida do obsługi Gradle w wersji 8.2 lub nowszej
- Android Studio Iguana lub nowszy
Oprócz tego w aplikacji musisz mieć te ustawienia:
- Włączono R8. W przypadku wersji do wdrożenia ustaw
isMinifyEnabled = true
. - Włączono optymalizacje układu DEX. W bloku
baselineProfile {}
pliku kompilacji modułu aplikacji ustawdexLayoutOptimization = true
.
Tworzenie profilu startupu
Android Studio tworzy profil uruchamiania wraz z profilem podstawowym, gdy używasz domyślnego szablonu generatora profilu podstawowego.
Ogólne kroki tworzenia i generowania profilu startowego są takie same jak w przypadku tworzenia profilu podstawowego.
Domyślny sposób tworzenia profilu startowego polega na użyciu szablonu modułu Baseline Profile
Generator w Android Studio. Obejmuje to interakcje ze startupem, które tworzą podstawowy profil startupu. Aby rozszerzyć ten profil startupu o więcej kluczowych ścieżek użytkownika (CUJ), dodaj CUJ startupu aplikacji do bloku rule
z ustawioną wartością includeInStartupProfile
na true
. W przypadku prostych aplikacji wystarczy uruchomić MainActivity
. 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 za pomocą precyzyjnego linku.
Poniższy fragment kodu pokazuje generator profilu podstawowego (domyślnie plik BaselineProfileGenerator.kt
), który obejmuje uruchamianie aplikacji z ekranu głównego i otwieranie jej za pomocą linku bezpośredniego. Precyzyjny link prowadzi bezpośrednio do kanału wiadomości w aplikacji, a nie do ekranu głównego aplikacji.
@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")
})
}
}
}
Uruchom konfigurację Generate Baseline Profile for app i znajdź reguły profilu uruchamiania w lokalizacji src/<variant>/generated/baselineProfiles/startup-prof.txt
.
Wskazówki dotyczące tworzenia profili startupów
Aby zdecydować, które ścieżki użytkownika uwzględnić podczas tworzenia profilu startupu, zastanów się, gdzie większość użytkowników rozpoczyna korzystanie z aplikacji. Zwykle jest to z launchera i po zalogowaniu się użytkownika. Jest to też najbardziej podstawowa ścieżka profilu bazowego.
Po uwzględnieniu pierwszego przypadku użycia przejdź do ścieżki użytkownika w przypadku uruchamiania aplikacji. W wielu przypadkach ścieżki uruchamiania aplikacji są zgodne z tą listą:
- Główna aktywność programu uruchamiającego
- Powiadomienia, które powodują uruchomienie aplikacji
- Opcjonalne działania programu uruchamiającego
Przetwarzaj 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 poza ścieżkę uruchamiania i dodaj więcej ścieżek. Aby przenieść kod poza ścieżkę 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 wgląd w wywołania metod podczas uruchamiania aplikacji.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy JavaScript jest wyłączony.
- Tworzenie profili podstawowych {:#creating-profile-rules}
- Profile podstawowe {:#baseline-profiles}
- Pisanie mikrotestu