Jetifier

Das eigenständige Jetifier-Tool migriert von der Supportbibliothek abhängige Bibliotheken und nutzt stattdessen die entsprechenden AndroidX-Pakete. Mit dem Tool können Sie eine einzelne Bibliothek direkt migrieren, anstatt das in Android Studio enthaltene Android-Gradle-Plug-in zu verwenden.

Jetifier installieren

Laden Sie die ZIP-Datei herunter und entpacken Sie sie, um Jetifier zu installieren. Auf Ihrem Gerät muss die Java-Version 1.8 oder höher installiert sein.

Nutzung

Übergeben Sie den Pfad zur aktuellen Bibliothek und den Pfad zur Ausgabedatei, die das Tool erstellen soll, um eine Bibliothek zu verarbeiten. Jetifier unterstützt JAR-, AAR- und ZIP-Dateien, einschließlich verschachtelter Archive.

./jetifier-standalone -i <source-library> -o <output-library>

Optionen

In der folgenden Tabelle sind die verfügbaren Optionen für die Befehle des Jetifier-Tools aufgeführt:

Option Erforderlich? Beschreibung
-i, <path>--input Ja Pfad zur Eingabebibliothek (JAR, AAR oder ZIP).
-o, <path>--output Ja Pfad zur Ausgabedatei. Wenn die Datei bereits vorhanden ist, wird sie von Jetifier überschrieben.
-c, <path>--config nein Pfad zur optionalen benutzerdefinierten Konfigurationsdatei.
-l, <level>--log nein Protokollierungsebene. Zulässige Werte sind:
  • Fehler
  • Warnung
  • Infos
  • ausführlich
Wenn nicht angegeben, wird standardmäßig „warning“ verwendet.
-r nein Im umgekehrten Modus („Dejetification“) durchführen.
-rebuildTopOfTree,
--rebuildTopOfTree
nein Erstellen Sie die ZIP-Datei der Maven-Distribution gemäß der generierten POM-Datei neu.
Wenn festgelegt, wird angenommen, dass alle umgeschriebenen Bibliotheken Teil der Support Library sind. Für die Jetifizierung nicht erforderlich.
-s, --strict nein Kein Fallback, wenn Regeln fehlen, sondern geben Fehler aus.
-stripSignatures,
--stripSignatures
nein Geben Sie beim Jetifizieren einer signierten Bibliothek keinen Fehler aus. Entfernen Sie stattdessen die Signaturdateien.
-t, <arg>-timestamp nein Zeitstempelrichtlinie, die für die archivierten Einträge als Änderungszeit verwendet werden soll. Werte: keepPrevious (Standard) oder now.

Beispiel

Im folgenden Beispiel wird das Dienstprogramm in der Bibliothek libraryToProcess.aar im aktuellen Verzeichnis ausgeführt und die Ausgabe in result.aar im selben Verzeichnis geschrieben:

./jetifier-standalone -i libraryToProcess.aar -o result.aar

Verwendungshinweise

Jetifier migriert Java-, XML-, POM- und ProGuard-Referenzen, die auf android.support.*-Pakete verweisen, und ändert sie so, dass sie auf die entsprechenden androidx.*-Pakete verweisen.

Da ProGuard-Platzhalter für android.support.* nicht immer direkt androidx.*-Paketen zugeordnet sind, erstellt Jetifier alle zulässigen Substitutionen.

Wenn ein android.support.*-Paket einen Typ enthält, der nicht aus einem Supportbibliotheksartefakt stammt, migriert Jetifier den Typ trotzdem, solange eine Zuordnung dafür vorhanden ist. Wir können jedoch nicht garantieren, dass diese Migration funktioniert, da es unter Umständen nicht allgemein genug Zuordnungsregeln gibt, um alle benutzerdefinierten Typen abzudecken.

Erweiterte Nutzung

Das Dienstprogramm Jetifier unterstützt einige erweiterte Anwendungsfälle.

Umkehrmodus

Wird das Flag -r übergeben, wird das Dienstprogramm im Umkehrmodus ausgeführt. In diesem Modus konvertiert das Dienstprogramm AndroidX APIs in die Support Library-Entsprechungen. Der umgekehrte Modus ist nützlich, wenn Sie Bibliotheken entwickeln, die AndroidX APIs verwenden, aber auch Versionen verteilen müssen, die die Supportbibliothek verwenden.

Beispiel

Im folgenden Beispiel wird das Dienstprogramm im umgekehrten Modus für die Bibliothek myAndroidXLib.aar im aktuellen Verzeichnis ausgeführt und die Ausgabe in supportLibVersion.aar im selben Verzeichnis geschrieben:

./jetifier-standalone -r -i myAndroidXLib.aar -o supportLibVersion.aar

Benutzerdefinierte Konfigurationsdatei

Das Jetifier-Tool verwendet eine Konfigurationsdatei, um Support Library-Klassen ihren AndroidX-Äquivalenten zuzuordnen. Bei Bedarf können Sie eine benutzerdefinierte Konfigurationsdatei erstellen, die diese Zuordnung ändert. Sie können der Zuordnung sogar neue Klassen hinzufügen, die nicht wirklich Mitglieder der Support Library sind. Beispielsweise können Sie die Zuordnung so ändern, dass eine Ihrer eigenen Klassen durch eine Nachfolgeklasse ersetzt wird, die für AndroidX geschrieben wurde.

So verwenden Sie eine benutzerdefinierte Konfigurationsdatei:

  1. Extrahieren Sie die Datei default.generated.config aus der Datei jetifier-core-*.jar des Dienstprogramms und speichern Sie sie.
  2. Nehmen Sie die erforderlichen Änderungen an der Kopie der Konfigurationsdatei vor.
  3. Übergeben Sie Ihre Datei mit dem Flag -c an das Dienstprogramm.

Beispiele:

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