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 Gradle para Android 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 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

Opción ¿Obligatoria? Descripción
-i, --input <path> Ruta de acceso a la biblioteca de entrada (JAR, AAR o ZIP).
-o, --output <path> Ruta de acceso al archivo de salida. Si el archivo ya existe, Jetifier lo sobrescribe.
-c, --config <path> no Ruta de acceso al archivo de configuración personalizado opcional.
-l, --log <nivel> no Nivel de registro. Los valores permitidos son los siguientes:
  • error
  • alerta
  • información
  • detallado
Si no se especifica, el valor predeterminado es "alerta".
-r no Opera en el modo inverso ("anulación de la jetificación").

Ejemplo

En el siguiente ejemplo, se ejecuta la utilidad en la biblioteca libraryToProcess.aar (en el directorio actual) y se escribe la salida 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 los modifica para que apunten a los paquetes androidx.* correspondientes.

Como 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 el indicador -r, la utilidad se ejecuta en el modo inverso. En este modo, la utilidad convierte las API de AndroidX a los equivalentes de la biblioteca de compatibilidad, en lugar de al revés. Este es útil, por ejemplo, si estás desarrollando bibliotecas que usan las API 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 el modo inverso en la biblioteca myAndroidXLib.aar (en el directorio actual) y se escribe la salida 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 nuevas clases 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 por una clase sucesora escrita para usar AndroidX.

Para usar un archivo de configuración personalizado, primero debes extraer el archivo default.generated.config del archivo jetifier-core-*.jar de la utilidad y guardarlo. Realiza las modificaciones necesarias en tu copia del archivo de configuración y pásalo a la utilidad con el indicador -c. Por ejemplo:

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