Instalator profilu

  
Umożliwia bibliotekom wstępne wypełnianie śladów kompilacji, które mają być odczytywane przez ART.
Ostatnia aktualizacja Wersja stabilna Wersja kandydująca Wersja Beta Wersja alfa
2 października 2024 r. 1.4.1 - - -

Deklarowanie zależności

Aby dodać zależność od ProfileInstaller, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Maven firmy Google.

W pliku build.gradle aplikacji lub modułu dodaj zależności artefaktów, których potrzebujesz:

Odlotowe

dependencies {
    implementation "androidx.profileinstaller:profileinstaller:1.3.1"
}

Kotlin

dependencies {
    implementation("androidx.profileinstaller:profileinstaller:1.3.1")
}

Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.

Opinia

Twoja opinia pomoże nam ulepszyć Jetpacka. Daj nam znać, jeśli odkryjesz nowe wydania lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nową bibliotekę, przejrzyj istniejące problemy w tej bibliotece. Możesz oddać swój głos do istniejącego problemu, klikając przycisk gwiazdki.

Tworzenie nowego numeru

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Wersja 1.4

Wersja 1.4.1

2 października 2024 r.

androidx.profileinstaller:profileinstaller:1.4.1 został zwolniony. Wersja 1.4.1 zawiera te komity.

Poprawki błędów

  • Naprawiono obsługę wieloprocesowego rejestrowania profilu podstawowego przez sygnalizowanie kolejnych procesów w sposób sekwencyjny. Ta poprawka wymaga aktualizacji do wersji androidx.benchmark:benchmark-macro:1.4.0-alpha02 w module ue makrotestu porównawczego lub profilu bazowego oraz androidx.profileinstaller:profileinstaller:1.4.1 w aplikacji (I0f519, b/366231469).

Wersja 1.4.0

18 września 2024 r.

androidx.profileinstaller:profileinstaller:1.4.0 został zwolniony. Wersja 1.4.0 zawiera te zatwierdzenia.

Ważne zmiany wprowadzone od wersji 1.3.0

  • ProfileInstaller obsługuje teraz rejestrowanie i instalowanie profili w wersji API 35 i nowszych. Aktualizacje ProfileInstaller nie powinny już być wymagane do aktualizacji wersji platformy. (6f9f6fa)
  • Naprawiono błąd powodujący awarię podczas przenoszenia shaderów na Androidzie U (API 34) oraz w emulatorze. (I031ca, b/274314544)
  • Popraw transkodowanie flagi metody w formacie profilu V_015S. (aosp/2906631, aosp/2847740)

Wersja 1.4.0-rc01

4 września 2024 r.

androidx.profileinstaller:profileinstaller:1.4.0-rc01 jest wersją bez zmian w stosunku do ostatniej wersji beta. Wersja 1.4.0-rc01 zawiera te komisy.

Wersja 1.4.0-beta01

21 sierpnia 2024 r.

androidx.profileinstaller:profileinstaller:1.4.0-beta01 jest wersją stabilną, która nie zawiera żadnych zmian w porównaniu z ostatnią wersją alfa. Wersja 1.4.0-beta01 zawiera te komity.

Wersja 1.4.0-alpha02

7 sierpnia 2024 r.

androidx.profileinstaller:profileinstaller:1.4.0-alpha02 został zwolniony. Wersja 1.4.0-alpha02 zawiera te komity.

Nowe funkcje

  • Dodano obsługę interfejsu API 35 w instalatorze profili. (6f9f6fa)

Poprawki błędów

  • Usunięto ręczne określanie dostępu do nowych interfejsów API platformy, ponieważ odbywa się to automatycznie za pomocą modelowania interfejsu API podczas korzystania z R8 z AGP 7.3 lub nowszym (np. R8 w wersji 3.3) oraz dla wszystkich kompilacji podczas korzystania z AGP 8.1 lub nowszego (np. D8 w wersji 8.1). Klienci, którzy nie korzystają z AGP, powinni zaktualizować D8 do wersji 8.1 lub nowszej. Więcej szczegółów znajdziesz w tym artykule. (If6b4c, b/345472586)

Wersja 1.4.0-alpha01

7 lutego 2024 r.

androidx.profileinstaller:profileinstaller:1.4.0-alpha01 został zwolniony. Wersja 1.4.0-alfa01 zawiera te zatwierdzenia.

Poprawki błędów

  • W narzędziu do weryfikowania profilu dodano kod błędu braku profilu. (Ifb109, b/313928520)
  • Naprawiono błąd powodujący awarię podczas przenoszenia shaderów na Androidzie U (API 34) oraz w emulatorze. (I031ca, b/274314544)
  • Włączona obsługa Androida U w instalatorze profilu. (Iaf177)
  • Rozwiązano problem polegający na tym, że instalator profilu na Androidzie U nie działał z powodu braku pustego bieżącego profilu podczas uruchamiania procesu. (Ie3899)
  • Naprawić kodowanie bitmapy metodą w formacie profilu V_015S. (aosp/2906631) i (aosp/2847740).

Wersja 1.3

Wersja 1.3.1

3 maja 2023 r.

androidx.profileinstaller:profileinstaller:1.3.1 został zwolniony. Wersja 1.3.1 zawiera te zatwierdzenia.

Poprawki błędów

  • Włączono obsługę Androida U w instalatorze profilu (Iaf177)
  • Rozwiązano problem polegający na tym, że instalator profilu na Androidzie U nie działał z powodu braku pustego bieżącego profilu podczas uruchamiania procesu. (Ie3899)

Wersja 1.3.0

22 marca 2023 r.

androidx.profileinstaller:profileinstaller:1.3.0 został zwolniony. Wersja 1.3.0 zawiera te commity.

Ważne zmiany od wersji 1.2.0

  • Naprawiono błąd NullPointerException w pliku ProfileInstallReceiver. (b/243851384)
  • Dodano interfejs API ProfileVerifier, który pozwala sprawdzić w aplikacji, czy profil bazowy został skompilowany, zaplanowany lub jest niedostępny (I263a4, b/246653809).
  • Dodaje nową transmisję powłoki, która umożliwia Macrobenchmarkowi pełne zapisywanie danych profilu w pamięci na dysku, aby uwzględnić je w generowaniu profilu referencyjnego. Jest to wymagane do korzystania z biblioteki analizy porównawczej do rejestrowania profili podstawowych za pomocą usługi BaselineProfileRule i oceny skuteczności profilu za pomocą narzędzia CompilationMode.Partial(warmupIterations).
  • Dodano kod diagnostyczny do wykrywania skompresowanych profili referencyjnych. Kompresowane profile bazowe nie mogą być instalowane przez narzędzie Profileinstaller w ramach testów porównawczych makro ani w produkcji z powodu obciążenia procesora. Należy unikać ich podczas kompilowania aplikacji. Aby to zrobić, zaktualizuj Studio/AGP Electric Eel lub bundletool do wersji 1.13.1(I86413, b/261998144).
  • Dodano uchwyty do testów porównawczych w trybie makro, aby rejestrować profile i usuwać pamięć podręczną shadera. Są one wymagane do generowania profili referencyjnych lub testów porównawczych w trybie makro na urządzeniach bez uprawnień roota (Ie0a7d, b/250083467, b/253094958) (Ia5171, b/231455742)

Wersja 1.3.0-rc01

8 marca 2023 r.

androidx.profileinstaller:profileinstaller:1.3.0-rc01 jest wersją bez zmian od ostatniej wersji beta. Wersja 1.3.0-rc01 zawiera te commity.

Wersja 1.3.0-beta01

8 lutego 2023 r.

androidx.profileinstaller:profileinstaller:1.3.0-beta01 został zwolniony. Wersja 1.3.0-beta01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Eliminuje obsługę obsługi skompresowanych profili – otwieranie i dekompresowanie prowadzi do 10-sekundowej regresji procesora podczas uruchamiania. Zamiast tego dodaliśmy obsługę diagnostyki, która wykrywa nieprawidłowo skompresowane profile podstawowe. (I86413, b/261998144)

Wersja 1.3.0-alfa03

11 stycznia 2023 r.

androidx.profileinstaller:profileinstaller:1.3.0-alpha03 został zwolniony. Wersja 1.3.0-alpha03 zawiera te commity.

Poprawki błędów

  • Umożliwia obsługę skompresowanych i nieskompresowanych profili referencyjnych (Ic61a0).
  • Usuń problem z użyciem MacrobenchmarkScope.dropShaderCache(), aby nie dopuścić do awarii przez naprawienie rejestru transmisji w pliku manifestu profileinstaller (I5c728, b/258619948)

Wersja 1.3.0-alpha02

9 listopada 2022 r.

androidx.profileinstaller:profileinstaller:1.3.0-alpha02 został zwolniony. Wersja 1.3.0-alpha02 zawiera te commity.

Zmiany w interfejsie API

  • Dodaliśmy haczyk dla testów porównawczych pozwalający usunąć pamięć podręczną cieniowania, aby zapewnić stałą wydajność w przypadku „na zimno” w przypadku uruchomienia „na zimno”, zwłaszcza przy kompilowaniu z profilami z iteracji wstępnych. Ta aktualizacja jest wymagana do pomiaru zimnych uruchomień za pomocą wersji benchmark-macro-junit4:1.2.0-alpha05 lub nowszej. Informacje o zmianach w interfejsie API biblioteki Benchmark znajdziesz na stronie Benchmark 1.2.0-alpha07. (Ia5171, b/231455742)

Wersja 1.3.0-alpha01

24 października 2022 r.

Usługa androidx.profileinstaller:profileinstaller:1.3.0-alpha01 została zwolniona. Wersja 1.3.0-alfa01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano interfejs API ProfileVerifier do sprawdzania z poziomu aplikacji, czy profil podstawowy został skompilowany, zaplanowany lub którego nie ma (I263a4, b/246653809)
  • Dodaje nową transmisję powłoki, która umożliwia Macrobenchmarkowi pełne zapisywanie danych profilu w pamięci na dysku, aby uwzględnić je w generowaniu profilu referencyjnego. Jest to wymagane, aby używać biblioteki macrobenchmark do rejestrowania profili bazowych za pomocą BaselineProfileRule i oceny wydajności profilu za pomocą CompilationMode.Partial(warmupIterations). (Ie0a7d, b/250083467, b/253094958)

Wersja 1.2.2

Wersja 1.2.2

11 stycznia 2023 r.

androidx.profileinstaller:profileinstaller:1.2.2 został zwolniony. Wersja 1.2.2 zawiera te zatwierdzenia.

Poprawki błędów

  • Umożliwia obsługę skompresowanych i nieskompresowanych profili bazowych (Ic61a0).

Wersja 1.2.1

Wersja 1.2.1

7 grudnia 2022 r.

androidx.profileinstaller:profileinstaller:1.2.1 został zwolniony. Wersja 1.2.1 zawiera te zatwierdzenia.

Nowe funkcje

  • Włącz profileinstaller dla S_V2 (API 32) i TIRAMISU (API 33) (b/254900303).

Wersja 1.2.0

Wersja 1.2.0

27 lipca 2022 roku

androidx.profileinstaller:profileinstaller:1.2.0 został zwolniony. Wersja 1.2.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.1.0

  • Dodaliśmy obsługę formatu profilu ART używanego na Androidzie 12 i nowszych.
  • Dodaj nowe interfejsy API w ProfileInstallReceiver, aby uzyskać bardziej spójne wyniki za pomocą Macrobenchmarks przy korzystaniu z profili podstawowych.

Wersja 1.2.0-rc01

15 czerwca 2022 r.

Usługa androidx.profileinstaller:profileinstaller:1.2.0-rc01 została zwolniona. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.

  • Ta wersja jest identyczna z androidx.profileinstaller:profileinstaller:1.2.0-beta03.

Wersja 1.2.0-beta03

1 czerwca 2022 r.

Usługa androidx.profileinstaller:profileinstaller:1.2.0-beta03 została zwolniona. Wersja 1.2.0-beta03 zawiera te zatwierdzenia.

Wersja 1.2.0-beta02

18 maja 2022 r.

androidx.profileinstaller:profileinstaller:1.2.0-beta02 został zwolniony. Wersja 1.2.0-beta02 zawiera te zatwierdzenia.

  • Obsługa wersji 1.2.0-beta02 nie wymaga żadnych zmian.

Wersja 1.2.0-beta01

11 maja 2022 roku

androidx.profileinstaller:profileinstaller:1.2.0-beta01 został zwolniony. Wersja 1.2.0-beta01 zawiera te commity.

Zmiany w interfejsie API

  • Dodaj nowe interfejsy API w ProfileInstallReceiver, aby uzyskać bardziej spójne wyniki z użyciem Macrobenchmarks przy korzystaniu z profili bazowych. (If2ae5, b/215740637)

Poprawki błędów

  • Instalator profilu wyświetla przydatną wiadomość, gdy próbujesz użyć formatu metadanych V_001 w Androidzie 12 lub nowszym. (aosp/1978526, b/217502387)
  • Instalator profilu używa teraz wersji androidx.startup 1.1.1. (aosp/2077099, b/229828376)

Wersja 1.2.0-alpha02

26 stycznia 2022 r.

androidx.profileinstaller:profileinstaller:1.2.0-alpha02 został zwolniony. Wersja 1.2.0-alpha02 zawiera te commity.

Ta wersja jest identyczna z 1.2.0-alpha01.

Wersja 1.2.0-alpha01

12 stycznia 2022 r.

androidx.profileinstaller:profileinstaller:1.2.0-alpha01 został zwolniony. Wersja 1.2.0-alpha01 zawiera te commity.

Nowe funkcje

  • Dodaliśmy obsługę formatu profilu ART używanego w Androidzie 12 i późniejszych wersjach.

Wersja 1.1.0

Wersja 1.1.0

9 lutego 2022 r.

androidx.profileinstaller:profileinstaller:1.1.0 został zwolniony. Wersja 1.1.0 zawiera te zatwierdzenia.

Wersja 1.1.0-rc01

15 grudnia 2021 roku

Usługa androidx.profileinstaller:profileinstaller:1.1.0-rc01 jest udostępniana bez aktualizacji od wersji 1.1.0–beta04. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.

Wersja 1.1.0-beta04

1 grudnia 2021 r.

Usługa androidx.profileinstaller:profileinstaller:1.1.0-beta04 została zwolniona. Wersja 1.1.0-beta04 zawiera te commity.

Wersja 1.1.0-beta03

17 listopada 2021 r.

Usługa androidx.profileinstaller:profileinstaller:1.1.0-beta03 została zwolniona. Wersja 1.1.0-beta03 zawiera te commity.

Poprawki błędów

  • Zaktualizowano, aby obsługiwać funkcję tworzenia wiadomości w wersjach 1.1.0-beta03

Wersja 1.1.0-beta02

3 listopada 2021 r.

androidx.profileinstaller:profileinstaller:1.1.0-beta02 został zwolniony. Wersja 1.1.0-beta02 zawiera te commity.

Poprawki błędów

  • Zaktualizowano, aby obsługiwać funkcję tworzenia wiadomości w wersjach 1.1.0-beta02

Wersja 1.1.0-beta01

27 października 2021 roku

Usługa androidx.profileinstaller:profileinstaller:1.1.0-beta01 została zwolniona. Wersja 1.1.0-beta01 zawiera te commity.

  • Brak zmian od wersji 1.1.0-alpha07.

Wersja 1.1.0-alpha07

13 października 2021 r.

androidx.profileinstaller:profileinstaller:1.1.0-alpha07 został zwolniony. Wersja 1.1.0-alpha07 zawiera te commity.

Nowe funkcje

  • Dodano obsługę profilu zawodowego na Androidzie N

Wersja 1.1.0-alpha06

29 września 2021 r.

Usługa androidx.profileinstaller:profileinstaller:1.1.0-alpha06 została zwolniona. Wersja 1.1.0-alpha06 zawiera te commity.

Poprawki błędów

  • Rozwiązanie problemów z kodowaniem profilu w N, O i O_MR1. (I12d75)

Wersja 1.1.0-alpha05

15 września 2021 r.

androidx.profileinstaller:profileinstaller:1.1.0-alpha05 został zwolniony. Wersja 1.1.0-alfa05 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiono transkodowanie profilu Androida Nougat i Androida Oreo w przypadku plików APK z wielopoziomowym dekodowaniem.

Wersja 1.1.0-alpha04

1 września 2021 roku

Usługa androidx.profileinstaller:profileinstaller:1.1.0-alpha04 została zwolniona. Wersja 1.1.0-alpha04 zawiera te commity.

Poprawki błędów

  • Napraw ProfileInstaller, aby ułatwić aplikacjom korzystającym z profili referencyjnych uruchamianie testów MacroBenchmarks za pomocą CompilationMode.BaselineProfile. (I42657, b/196074999)

Wersja 1.1.0-alpha03

18 sierpnia 2021 r.

Usługa androidx.profileinstaller:profileinstaller:1.1.0-alpha03 została zwolniona. Wersja 1.1.0-alpha03 zawiera te commity.

Poprawki błędów

  • Zmień zachowanie programu instalowania profilu, aby rejestrować wartość PackageInfo.lastUpdatedTime w pliku w katalogu plików aplikacji i porównywać ją przed zainstalowaniem profilu podczas następnego uruchomienia. (Ib93d1)
  • Dostosowywanie formatu profilu na urządzeniach z Androidem P, Q i R do wymagań ART (I84e89)

Wersja 1.1.0-alpha02

4 sierpnia 2021 r.

androidx.profileinstaller:profileinstaller:1.1.0-alpha02 został zwolniony. Wersja 1.1.0-alpha02 zawiera te commity.

Zaktualizowano, aby zapewnić zgodność z Compose w wersji 1.1.0-alpha01.

Wersja 1.1.0-alpha01

21 lipca 2021 r.

androidx.profileinstaller:profileinstaller:1.1.0-alpha01 został zwolniony. Wersja 1.1.0-alpha01 zawiera te commity.

Poprawki błędów

  • Naprawiono błąd, który w niektórych okolicznościach powodował włączenie trybu rygorystycznego.

Wersja 1.0

Wersja 1.0.4

13 października 2021 r.

androidx.profileinstaller:profileinstaller:1.0.4 został zwolniony. Wersja 1.0.4 zawiera te zatwierdzenia.

  • Zaktualizowano, aby obsługiwać funkcję tworzenia wiadomości w wersji 1.0.4

Wersja 1.0.3

29 września 2021 r.

androidx.profileinstaller:profileinstaller:1.0.3 został zwolniony. Wersja 1.0.3 zawiera te zatwierdzenia.

  • Zaktualizowano, aby obsługiwać funkcję tworzenia wiadomości w wersji 1.0.3

Wersja 1.0.2

1 września 2021 roku

Usługa androidx.profileinstaller:profileinstaller:1.0.2 została zwolniona. Wersja 1.0.2 zawiera te zatwierdzenia.

Poprawki błędów

  • Dodano transkodowanie profilu dla urządzeń P, Q i R. Ta zmiana oznacza, że te urządzenia będą konwertować profil, aby zapewnić, że zapisany profil będzie zawsze dostępny dla ART. Wcześniej transkodowanie było pomijane na tych platformach, co czasami uniemożliwiało usłudze ART przetworzenie profilu źródłowego. Brak zmian w interfejsach API dla programistów.

Wersja 1.0.1

4 sierpnia 2021 r.

Usługa androidx.profileinstaller:profileinstaller:1.0.1 została zwolniona. Wersja 1.0.1 zawiera te zatwierdzenia.

Zaktualizowano, aby zapewnić zgodność z Compose 1.0.1.

Wersja 1.0.0

28 lipca 2021 roku

androidx.profileinstaller:profileinstaller:1.0.0 został zwolniony. Wersja 1.0.0 zawiera te zatwierdzenia.

Najważniejsze funkcje wersji 1.0.0

Instalator profili to nowa biblioteka, która umożliwia bibliotekom i aplikacjom definiowanie „reguł profilu” oraz łączenie informacji z profilu ART z plikiem APK. Ta biblioteka instaluje te profile po uruchomieniu aplikacji. Można go wykorzystać do poprawy wydajności aplikacji.

Więcej informacji o tym, czym są te reguły i jak działają, znajdziesz w szczegółowych informacjach o wersji 1.0.0-beta01.

Wersja 1.0.0-rc02

14 lipca 2021 roku

androidx.profileinstaller:profileinstaller:1.0.0-rc02 został zwolniony. Wersja 1.0.0-rc02 zawiera te zatwierdzenia.

Wersja 1.0.0-rc01

1 lipca 2021 r.

androidx.profileinstaller:profileinstaller:1.0.0-rc01 został zwolniony. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.

Jest to wersja RC bez zmian w stosunku do wersji beta.

Wersja 1.0.0-beta01

16 czerwca 2021 r.

androidx.profileinstaller:profileinstaller:1.0.0-beta01 został zwolniony. Wersja 1.0.0-beta01 zawiera te commity.

Cel biblioteki

Instalator profilu to nowa biblioteka, która umożliwia bibliotekom i aplikacjom definiowanie „Reguł profilu” i zbieranie informacji o profilu ART w pliku APK. Biblioteka ta instaluje te profile po uruchomieniu aplikacji. Można go wykorzystać do poprawy wydajności aplikacji.

Instalacja tego profilu jest wykonywana za pomocą biblioteki androidx.startup. Jeśli z jakiegokolwiek powodu chcesz wyłączyć instalowanie profilu, możesz zmodyfikować plik manifest, aby go usunąć:


       <provider
           android:name="androidx.startup.InitializationProvider"
           android:authorities="${applicationId}.androidx-startup"
           android:exported="false"
           tools:node="merge">
           <meta-data android:name="androidx.profileinstaller.ProfileInstallerInitializer"
                     tools:node="remove" />
       </provider>

Jest to szczególnie przydatne, gdy aplikacja ma niestandardowe wymagania dotyczące uruchamiania i chcesz ręcznie zainicjować instalację profilu za pomocą interfejsu API ProfileInstaller.writeProfile.

Co to są reguły profilu?

  • Reguły profilu dla biblioteki określa się w pliku tekstowym baseline-prof.txt znajdującym się w katalogu src/main lub podobnym. Plik określa regułę na wiersz, gdzie reguła w tym przypadku jest wzorcem dopasowywania do metod lub klas w bibliotece. Składnia tych reguł jest superzbiorem czytelnego dla człowieka formatu profilu ART, który jest używany podczas korzystania z adb shell profman --dump-classes-and-methods .... Reguły te mogą kierować reklamy na metody lub klasy w jednej z dwóch form.

  • Reguła metody będzie miała następujący wzorzec:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • Reguła klasy będzie miała następujący wzorzec:

    <CLASS_DESCRIPTOR>
    
  • Tutaj <FLAGS> to co najmniej jeden z znaków H, S lub P, który wskazuje, czy ta metoda powinna być oznaczona jako „Aktywna”, „Uruchamianie” lub „Po uruchomieniu”.

  • <CLASS_DESCRIPTOR> to deskryptor klasy, do której należy docelowa metoda. Na przykład klasa androidx.compose.runtime.SlotTable miałaby deskryptor Landroidx/compose/runtime/SlotTable;.

  • <METHOD_SIGNATURE> to sygnatura metody, która zawiera nazwę, typy parametrów i typ zwracany metody. Na przykład metoda fun isPlaced(): Boolean w klasie LayoutNode ma sygnaturę isPlaced()Z.

  • Aby jedna reguła obejmowała wiele metod lub klas, mogą one zawierać symbole wieloznaczne (**, * i ?).

Do czego służą reguły?

  • Metoda z flagą H wskazuje, że jest to metoda „gorąca” i należy ją skompilować z wyprzedzeniem.

  • Metoda z flagą S wskazuje, że jest to metoda wywoływana przy uruchamianiu i należy ją skompilować z wyprzedzeniem, by uniknąć kosztów kompilacji i interpretacji podczas uruchamiania.

  • Metoda z flagą P wskazuje, że jest to metoda, która jest wywoływana po uruchomieniu.

  • Klasa obecna w tym pliku wskazuje, że jest używana podczas uruchamiania i powinna być wstępnie przydzielona w pniu, aby uniknąć kosztów wczytywania klasy.

Jak to działa?

  • Biblioteki mogą definiować te reguły, które zostaną zapakowane w elementy AAR. Gdy kompilujesz plik APK, który zawiera te artefakty, reguły te są scalane, a następnie używane do tworzenia kompaktowego profilu binarnego ART, który jest specyficzny dla pliku APK. Następnie ART może wykorzystać ten profil po zainstalowaniu pliku APK na urządzeniach, aby z wyprzedzeniem skompilować określony podzbiór aplikacji i w ten sposób poprawić jej wydajność, zwłaszcza podczas pierwszego uruchomienia. Pamiętaj, że nie będzie to miało wpływu na aplikacje z możliwością debugowania.

  • Pliki reguł powinny mieć nazwę baseline-prof.txt i umieścić w katalogu głównym głównego zestawu źródłowego (powinien być plikiem równorzędnym z plikiem AndroidManifset.xml).

  • Obecnie te pliki są używane tylko wtedy, gdy używasz wtyczki Androida do obsługi Gradle w wersji 7.0 lub nowszej. Obecnie jest ona włączona tylko za pomocą flagi w pliku gradle.properties:

    # Enable adding baseline-prof.txt files to AAR artifacts, and binary profiles to APKs
    android.experimental.enableArtProfiles=true
    

Profile wymagają salda

  • Odpowiednio skonstruowane profile, które prawidłowo ustalają priorytety metod i klas, które będą znajdować się na ścieżce uruchamiania i będą miały kluczowe znaczenie dla wydajności, przyniosą najlepsze rezultaty. Jednak uwzględnienie zbyt wielu metod lub klas w profilach może mieć ujemny wpływ na zużycie pamięci i dysku, dlatego zalecamy ostrożne podejście przy definiowaniu własnych reguł profilu.