Jetifier

La herramienta Jetifier independiente migra las bibliotecas dependientes de la biblioteca de compatibilidad a fin de basarse en los paquetes de AndroidX equivalentes. Esta te permite migrar una biblioteca individual directamente, en lugar de usar el complemento de Android para Gradle que se incluye con Android Studio.

Cómo instalar Jetifier

Para instalar Jetifier, descarga el archivo ZIP y extráelo. Tu dispositivo debe tener instalada la versión 1.8 o posterior de Java.

Uso

Para procesar una biblioteca, pasa la ruta de acceso a la biblioteca actual y la ruta de acceso al archivo de salida que la herramienta debería crear. Jetifier admite archivos JAR, AAR y ZIP, incluidos los archivos anidados.

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

Opciones

En la siguiente tabla, se enumeran las opciones disponibles para los comandos de la herramienta Jetifier:

Opción ¿Obligatoria? Descripción
-i, <path> de --input Ruta de acceso a la biblioteca de entrada (JAR, AAR o ZIP).
-o, <path> de --output Ruta de acceso al archivo de salida. Si el archivo ya existe, Jetifier lo sobrescribe.
-c, <path> de --config no Ruta de acceso al archivo de configuración personalizado opcional.
-l, <level> de --log no Nivel de registro. Se permiten los siguientes valores:
  • error
  • advertencia
  • información
  • detallado
Si no se especifica, el valor predeterminado es "advertencia".
-r no Opera en el modo inverso ("anulación de la jetificación").
-rebuildTopOfTree,
--rebuildTopOfTree
no Vuelve a compilar el ZIP de la distribución de Maven según el archivo POM generado.
Si se configura, se supone que todas las bibliotecas reescritas forman parte de la biblioteca de compatibilidad. No es necesaria para la jetificación.
-s, --strict no No utilices resguardo cuando falten reglas; arroja errores.
-stripSignatures,
--stripSignatures
no No arrojes un error cuando se jetifica una biblioteca firmada; desvincula los archivos de firma.
-t, <arg> de -timestamp no Política de marcas de tiempo para usar en las entradas archivadas como su hora modificada. Valores: keepPrevious (predeterminado) epoch o ahora.

Ejemplo

En el siguiente ejemplo, se ejecuta la utilidad en la biblioteca libraryToProcess.aar en el directorio actual y se escribe el resultado en result.aar, en el mismo directorio:

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

Notas de uso

Jetifier migra referencias de Java, XML, POM y ProGuard que apuntan a paquetes android.support.*, y las modifica para que apunten a los paquetes androidx.* correspondientes.

Dado que los comodines de ProGuard para android.support.* no siempre se asignan directamente a los paquetes androidx.*, Jetifier produce todas las sustituciones aptas.

Si hay un tipo en un paquete android.support.* que no proviene de ningún artefacto de biblioteca de compatibilidad, Jetifier igualmente lo migra, siempre que haya una asignación para este. Sin embargo, no se garantiza que esta migración funcione, ya que puede que no haya reglas de asignación lo suficientemente generales como para cubrir todos los tipos personalizados.

Uso avanzado

La utilidad Jetifier admite algunos casos de uso avanzados.

Modo inverso

Si pasas la marca -r, se ejecuta la utilidad en el modo inverso. En este modo, la utilidad convierte las APIs de AndroidX a los equivalentes de la biblioteca de compatibilidad. Este es útil, por ejemplo, si estás desarrollando bibliotecas que usan las APIs de AndroidX, pero también necesitarás distribuir versiones que usen la biblioteca de compatibilidad.

Ejemplo

En el siguiente ejemplo, se ejecuta la utilidad en modo inverso en la biblioteca myAndroidXLib.aar en el directorio actual y se escribe el resultado en supportLibVersion.aar, en el mismo directorio:

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

Archivo de configuración personalizado

La herramienta Jetifier usa un archivo de configuración para asignar clases de biblioteca de compatibilidad a sus equivalentes de AndroidX. Si es necesario, puedes crear un archivo de configuración personalizado que altere esta asignación. Incluso puedes agregar clases nuevas a la asignación que en realidad no sean miembros de la biblioteca de compatibilidad. Por ejemplo, puedes modificar la asignación para reemplazar una de tus propias clases con una clase sucesora escrita para usar AndroidX.

Para usar un archivo de configuración personalizado, haz lo siguiente:

  1. Extrae el archivo default.generated.config del archivo jetifier-core-*.jar de la utilidad y guárdalo.
  2. Realiza las modificaciones necesarias en tu copia del archivo de configuración.
  3. Pasa el archivo a la utilidad con la marca -c.

Por ejemplo:

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