Samodzielne narzędzie Jetifier przenosi biblioteki zależne od biblioteki pomocy, aby korzystać z odpowiadających im pakietów AndroidX. To narzędzie umożliwia bezpośrednią migrację poszczególnych bibliotek bez konieczności używania wtyczki Androida do obsługi Gradle dołączonej do Android Studio.
Zainstaluj Jetifier
Aby zainstalować Jetifier, pobierz plik ZIP i rozpakuj go. Na urządzeniu musi być zainstalowana Java w wersji 1.8 lub nowszej.
Wykorzystanie
Aby przetworzyć bibliotekę, przekaż ścieżkę do bieżącej biblioteki oraz ścieżkę do pliku wyjściowego, który narzędzie powinno utworzyć. Jetifier obsługuje pliki JAR, AAR i ZIP, w tym archiwa zagnieżdżone.
./jetifier-standalone -i <source-library> -o <output-library>
Opcje
W tabeli poniżej znajdziesz dostępne opcje poleceń narzędzia Jetifier:
Opcja | Wymagana? | Opis |
---|---|---|
-i , --input <path> |
tak | Ścieżka do biblioteki danych wejściowych (JAR, AAR lub ZIP). |
-o , --output <path>
|
tak | Ścieżka do pliku wyjściowego. Jeśli plik już istnieje, Jetifier go zastąpi. |
-c , --config <path> |
nie | Ścieżka do opcjonalnego niestandardowego pliku konfiguracyjnego. |
-l , --log <level>
|
nie | Poziom rejestrowania. Dozwolone wartości:
|
-r |
nie | Działanie w trybie odwrotnym („de-jetification”) |
-rebuildTopOfTree ,--rebuildTopOfTree |
nie | Ponownie utwórz plik ZIP dystrybucji Maven zgodnie z wygenerowanym plikiem POM. Jeśli ta zasada jest skonfigurowana, przyjmuje się, że wszystkie przepisane biblioteki należą do Biblioteki pomocy. Nie jest potrzebne do migracji. |
-s , --strict
|
nie | Nie używaj kreacji zastępczych, gdy brakuje reguł – zamiast tego zgłaszaj błędy. |
-stripSignatures --stripSignatures
|
nie | Nie zgłaszaj błędu przy korzystaniu z podpisanej biblioteki. Zamiast tego usuń pliki podpisu. |
-t , -timestamp <arg>
|
nie | Zasady dotyczące sygnatur czasowych wykorzystywanych w przypadku zarchiwizowanych wpisów jako czasu ich modyfikacji. Wartości: keepPrevious (wartość domyślna) epoch lub now. |
Przykład
Poniższy przykład pokazuje uruchomienie narzędzia w bibliotece libraryToProcess.aar
w bieżącym katalogu i zapisanie danych wyjściowych w katalogu result.aar
w tym samym katalogu:
./jetifier-standalone -i libraryToProcess.aar -o result.aar
Zastosowanie
Jetifier przenosi odwołania w Javie, XML, POM i ProGuard, które wskazują pakiety android.support.*
, zmieniając je w taki sposób, aby wskazywały odpowiednie pakiety androidx.*
.
Symbole wieloznaczne ProGuard dla atrybutu android.support.*
nie zawsze są mapowane bezpośrednio na pakiety androidx.*
, dlatego Jetifier tworzy wszystkie odpowiednie zamienniki.
Jeśli w pakiecie android.support.*
występuje typ, który nie pochodzi z żadnego artefaktu Biblioteki pomocy, Jetifier nadal będzie go przenosić, dopóki istnieje jego mapowanie. Nie możemy jednak zagwarantować, że ta migracja się uda, ponieważ reguły mapowania mogą nie być wystarczająco ogólne, aby uwzględnić wszystkie typy niestandardowe.
Zaawansowane użycie
Narzędzie Jetifier obsługuje niektóre zaawansowane przypadki użycia.
Tryb odwrotny
Jeżeli flaga -r
zostanie przekazana, narzędzie będzie działać w trybie odwrotnym. W tym trybie narzędzie konwertuje interfejsy API AndroidX na odpowiedniki w Bibliotece pomocy. Tryb odwrotny jest przydatny, gdy tworzysz biblioteki korzystające z interfejsów API AndroidX, ale musisz też rozpowszechniać wersje korzystające z biblioteki pomocy.
Przykład
Ten przykład uruchamia narzędzie w trybie odwrotnym w bibliotece myAndroidXLib.aar
w bieżącym katalogu i zapisuje dane wyjściowe w katalogu supportLibVersion.aar
w tym samym katalogu:
./jetifier-standalone -r -i myAndroidXLib.aar -o supportLibVersion.aar
Niestandardowy plik konfiguracyjny
Narzędzie Jetifier używa pliku konfiguracyjnego do mapowania klas Biblioteki pomocy na ich odpowiedniki w AndroidzieX. W razie potrzeby możesz utworzyć niestandardowy plik konfiguracyjny, który zmieni to mapowanie. Do mapowania możesz też dodawać nowe klasy, które nie należą do Biblioteki pomocy. Możesz na przykład zmodyfikować mapowanie tak, aby zastąpić jedną z Twoich klas wersją następczą napisaną z myślą o AndroidzieX.
Aby użyć niestandardowego pliku konfiguracyjnego:
- Wyodrębnij plik
default.generated.config
z plikujetifier-core-*.jar
narzędzia i zapisz go. - Wprowadź niezbędne zmiany w kopii pliku konfiguracyjnego.
- Przekaż plik do narzędzia z flagą
-c
.
Na przykład:
./jetifier-standalone -i libraryToProcess.aar -o result.aar -c myCustomMapping.config