Jetifier

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:
  • błąd
  • ostrzeżenie
  • informacje
  • wyczerpujący
Jeśli nie podasz żadnej wartości, domyślnie zostanie użyta wartość „warning”.
-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:

  1. Wyodrębnij plik default.generated.config z pliku jetifier-core-*.jar narzędzia i zapisz go.
  2. Wprowadź niezbędne zmiany w kopii pliku konfiguracyjnego.
  3. Przekaż plik do narzędzia z flagą -c.

Na przykład:

./jetifier-standalone -i libraryToProcess.aar -o result.aar -c myCustomMapping.config