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 ustaw wartośćdexLayoutOptimization = 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 startupu są takie same jak w przypadku tworzenia profilu podstawowego.
Domyślny sposób tworzenia profilu startowego polega na użyciu szablonu modułu Generator profilu podstawowego w Android Studio. Obejmuje to interakcje z startupami, 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 otwieranie jej za pomocą precyzyjnego linku.
Poniższy fragment kodu pokazuje generator profilu podstawowego (domyślnie plik BaselineProfileGenerator.kt), który obejmuje uruchamianie za pomocą linku bezpośredniego.
Precyzyjny link prowadzi bezpośrednio do kanału wiadomości w 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 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 śledź ścieżkę 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 język JavaScript jest wyłączony.
- Tworzenie profili podstawowych {:#creating-profile-rules}
- Profile podstawowe {:#baseline-profiles}
- Pisanie mikrotestu