W tym dokumencie wyjaśniamy różnicę między profilami bazowymi a profilami startowymi.
Za pomocą wtyczki Gradle profilu podstawowego możesz automatycznie rejestrować pliki profilu podstawowego w formacie czytelnym dla człowieka, które są generowane przez testy BaselineProfileRule. Podczas tworzenia aplikacji wtyczka Android Gradle Plugin (AGP) kompiluje te czytelne dla człowieka reguły profilu do formatu binarnego, który jest pakowany jako baseline.prof w pakiecie aplikacji na Androida (APK) lub pakiecie aplikacji na Androida (AAB). Środowisko wykonawcze Androida (ART) może skutecznie używać tego formatu do kompilacji na urządzeniu, pod warunkiem że binarny profil jest mniejszy niż 1,5 MB.
Utworzone pliki profilu mają zwykle nazwy startup-prof.txt i baseline-prof.txt.
profil podstawowy
Plik profilu podstawowego zawiera obszerny zestaw reguł, których ART używa do wstępnego kompilowania często używanych ścieżek kodu. Optymalizuje to uruchamianie aplikacji, zmniejsza zacinanie się interakcji i poprawia ogólną wydajność środowiska wykonawczego.
Plik profilu podstawowego jest zwykle nadzbiorem reguł znajdujących się w profilu uruchamiania. Ten plik zawiera wszystkie reguły wymagane do optymalizacji uruchamiania aplikacji (wygenerowane za pomocą zadania Gradle baselineProfile) oraz dodatkowe profile innych ważnych ścieżek użytkownika. Na przykład przewijanie i przechodzenie między różnymi ekranami.
Te reguły nie są generowane niezależnie od wartości pola konfiguracji
includeInStartupProfile. Więcej informacji znajdziesz w artykule Omówienie profili podstawowych.
Profil startupu
Plik profilu uruchamiania zawiera reguły zoptymalizowane pod kątem ścieżki uruchamiania aplikacji. Podczas kompilacji kompilatory D8 i R8 przetwarzają kod bajtowy Javy, aby utworzyć pliki wykonywalne Dalvik (DEX). Zarówno D8, jak i R8 używają profili uruchamiania, aby zoptymalizować układ DEX przez umieszczenie krytycznego kodu uruchamiania w głównym pliku .dex, co przyspiesza wczytywanie klas. Aby uzyskać największy wzrost wydajności, kod uruchamiania musi znajdować się w tym głównym pliku .dex. Jeśli łączny rozmiar kodu startowego jest zbyt duży, przepełnia kolejne pliki DEX, które często zawierają nieistotne klasy i metody, co spowalnia uruchamianie.
Profil uruchamiania zawiera metadane niezbędne do optymalizacji układu DEX, ale optymalizacja kodu R8 może być bardzo pomocna w tym procesie. Usuwając nieużywany kod i minimalizując kod bajtowy, R8 zmniejsza całkowity rozmiar logiki uruchamiania. To zmniejszenie zwiększa prawdopodobieństwo, że krytyczny kod pozostanie w głównym pliku .dex, co zapobiega przepełnieniu i zapewnia wydajniejsze wykonywanie w szerszym zakresie wersji Androida.
W przypadku includeInStartupProfile wartość true należy ustawiać tylko w scenariuszach testowych niezbędnych do początkowego wyświetlania aplikacji.
Więcej informacji znajdziesz w omówieniu profili startupów.