Tworzenie profili uruchamiania

Profile startupów to podzbiór profili podstawowych. System kompilacji używa profili uruchamiania, aby optymalizować klasy i metody zawarte w nich, ulepszając układ kodu w plikach DEX pliku APK. Dzięki profilom uruchamiania aplikacja uruchamia się zwykle od 15% do 30% szybciej niż w przypadku samych profili bazowych.

Rysunek 1. Zwiększenie lokalności kodu dzięki optymalizacji układu DEX.

Wymagania

Zalecamy korzystanie z profili uruchamiania z tymi narzędziami:

  • 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

Dodatkowo w aplikacji musisz mieć te ustawienia:

  • Włączono R8. W przypadku wersji wydania ustaw isMinifyEnabled = true.
  • Włączono optymalizacje układu DEX. W bloku baselineProfile {} pliku kompilacji modułu aplikacji ustaw wartość dexLayoutOptimization = true.

Tworzenie profilu startowego

Gdy użyjesz domyślnego szablonu generatora profili podstawowych, Android Studio utworzy profil startowy obok profilu podstawowego.

Ogólne czynności związane z tworzeniem i generowaniem profilu startupu są takie same jak te dotyczące tworzenia profilu podstawowego.

Domyślny sposób tworzenia profilu startowego polega na użyciu szablonu modułu Generator profili bazowych w Android Studio. Obejmuje to interakcje na etapie uruchamiania, które tworzą podstawowy profil. Aby rozszerzyć ten profil uruchamiania o kolejne krytyczne ścieżki użytkownika, dodaj do bloku rule ścieżki uruchamiania aplikacji, dla których includeInStartupProfile ma wartość true. W przypadku prostych aplikacji wystarczy uruchomić MainActivity. W przypadku bardziej złożonych aplikacji warto dodać najpopularniejsze punkty wejścia do aplikacji, takie jak uruchamianie aplikacji z poziomu ekranu głównego lub uruchamianie 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 uruchamianie za pomocą linku bezpośredniego. Precyzyjny link prowadzi bezpośrednio do kanału z wiadomościami aplikacji, a nie na jej ekran główny.

@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 generowanie profilu bazowego dla aplikacji i znajdź reguły profilu startowego na stronie src/<variant>/generated/baselineProfiles/startup-prof.txt.

Wskazówki dotyczące tworzenia profili startupów

Dane wyjściowe klas i metod profilu startowego są ograniczone rozmiarem pierwszego pliku classes.dex. Oznacza to, że nie wszystkie ścieżki profilu podstawowego powinny być ścieżkami profilu startowego.

Aby zdecydować, które ścieżki użytkownika uwzględnić podczas tworzenia profilu uruchamiania, zastanów się, od czego zaczynają aplikację większość użytkowników. Zwykle jest to z wyrzutni aplikacji po zalogowaniu się. Jest to też najprostsza ścieżka profilu podstawowego.

Po omówieniu pierwszego przypadku użycia przejdź do ścieżki użytkownika w przypadku uruchamiania aplikacji. W wielu przypadkach ścieżki uruchamiania aplikacji wyglądają tak:

  1. Główna aktywność programu uruchamiającego
  2. Powiadomienia, które uruchamiają aplikację
  3. Opcjonalne działania w uruchomieniach

Przejrzyj tę listę od góry i zatrzymaj się, zanim classes.dex zostanie zapełniony. Aby uwzględnić więcej podróży, usuń kod z ścieżki uruchamiania i dodaj więcej podróży. Aby usunąć kod z ścieżki uruchamiania, sprawdź ścieżki Perfetta podczas uruchamiania aplikacji i poszukaj operacji o długim czasie działania. Możesz też użyć makrobenchmarkuwłączonym śledzeniem metod, aby uzyskać pełny widok wywołań metod podczas uruchamiania aplikacji.

Obecnie nie ma rekomendacji.

na swoje konto Google.