Instalator profilu
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.
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 orazandroidx.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. AktualizacjeProfileInstaller
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 plikuProfileInstallReceiver
. (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ędziaCompilationMode.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 wersji1.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życiemMacrobenchmarks
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 katalogusrc/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 zadb 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ówH
,S
lubP
, 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 klasaandroidx.compose.runtime.SlotTable
miałaby deskryptorLandroidx/compose/runtime/SlotTable;
.<METHOD_SIGNATURE>
to sygnatura metody, która zawiera nazwę, typy parametrów i typ zwracany metody. Na przykład metodafun isPlaced(): Boolean
w klasieLayoutNode
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 plikiemAndroidManifset.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.