Jetifier

L'outil autonome Jetifier migre les bibliothèques dépendantes de la bibliothèque Support vers les packages AndroidX équivalents. Il vous permet de migrer directement une bibliothèque individuelle au lieu d'utiliser le plug-in Android Gradle fourni avec Android Studio.

Installer Jetifier

Pour installer Jetifier, téléchargez le fichier ZIP et extrayez-le. Votre appareil doit être équipé de Java 1.8 ou version ultérieure.

Utilisation

Pour traiter une bibliothèque, transmettez le chemin d'accès à la bibliothèque actuelle et le chemin d'accès au fichier de sortie que l'outil doit créer. Jetifier est compatible avec les fichiers JAR, AAR et ZIP, y compris les archives imbriquées.

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

Options

Le tableau suivant indique les options disponibles pour les commandes de l'outil Jetifier :

Option Obligatoire ? Description
-i <path> --input oui Chemin d'accès à la bibliothèque d'entrée (JAR, AAR ou ZIP).
-o <path> --output oui Chemin d'accès au fichier de sortie. Si le fichier existe déjà, Jetifier l'écrase.
-c <path> --config non Chemin d'accès au fichier de configuration personnalisé facultatif.
-l <level> --log non Niveau de journalisation. Valeurs autorisées :
  • error (erreur)
  • warning (avertissement)
  • info
  • verbose (détail)
Si aucune valeur n'est spécifiée, la valeur par défaut est "warning" (avertissement).
-r non Fonctionnement en mode inverse ("déjetification").
-rebuildTopOfTree,
--rebuildTopOfTree
non Recréez le fichier ZIP de la distribution Maven en fonction du fichier POM généré.
Si cette valeur est définie, toutes les bibliothèques réécrites sont considérées comme faisant partie de la bibliothèque Support. Cela n'est pas nécessaire pour la jetification.
-s, --strict non Ne faites pas appel à des solutions de secours lorsque des règles sont manquantes. Générez des erreurs à la place.
-stripSignatures,
--stripSignatures
non N'envoyez pas d'erreur lors de la jetification d'une bibliothèque signée. Supprimez les fichiers de signature à la place.
-t <arg> -timestamp non Règle d'horodatage à utiliser pour les entrées archivées en tant que date de modification. Valeurs : epoch "keepprevious" (par défaut) ou "now" (maintenant).

Exemple

L'exemple suivant exécute l'utilitaire sur la bibliothèque libraryToProcess.aar dans le répertoire actuel et écrit la sortie dans result.aar dans le même répertoire :

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

Remarques sur l'utilisation

Jetifier migre les références Java, XML, POM et ProGuard qui pointent vers des packages android.support.*, en les modifiant pour qu'elles pointent vers les packages androidx.* correspondants.

Étant donné que les caractères génériques ProGuard pour android.support.* ne sont pas toujours mappés directement avec les packages androidx.*, Jetifier génère toutes les substitutions éligibles.

Si un type de package android.support.* ne provient d'aucun artefact de la bibliothèque Support, Jetifier le migre quand même tant qu'il existe un mappage. Cependant, il se peut que cette migration ne fonctionne pas, car les règles de mappage peuvent ne pas être suffisamment générales pour couvrir tous les types personnalisés.

Utilisation avancée

L'utilitaire Jetifier prend en charge certains cas d'utilisation avancés.

Mode inverse

Si vous transmettez l'option -r, l'utilitaire s'exécute en mode inverse. Dans ce mode, l'utilitaire convertit les API AndroidX en équivalents dans la bibliothèque Support. Le mode inverse est particulièrement utile si vous développez des bibliothèques qui utilisent les API AndroidX, mais que vous devez également distribuer des versions qui utilisent la bibliothèque Support.

Exemple

L'exemple suivant exécute l'utilitaire en mode inverse sur la bibliothèque myAndroidXLib.aar dans le répertoire actuel et écrit la sortie dans supportLibVersion.aar dans le même répertoire :

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

Fichier de configuration personnalisé

Jetifier utilise un fichier de configuration pour mapper les classes de la bibliothèque Support avec leurs équivalents AndroidX. Si nécessaire, vous pouvez créer un fichier de configuration personnalisé qui modifie ce mappage. Vous pouvez même ajouter de nouvelles classes qui ne font pas réellement partie de la bibliothèque Support. Par exemple, vous pouvez modifier le mappage pour remplacer l'une de vos propres classes par une classe successeur écrite pour utiliser AndroidX.

Pour utiliser un fichier de configuration personnalisé, procédez comme suit :

  1. Extrayez le fichier default.generated.config du fichier jetifier-core-*.jar de l'utilitaire, puis enregistrez-le.
  2. Apportez toutes les modifications nécessaires à la copie du fichier de configuration.
  3. Transmettez votre fichier à l'utilitaire avec l'indicateur -c.

Exemple :

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