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 |
sí | Ruta de acceso a la biblioteca de entrada (JAR, AAR o ZIP). |
-o , <path> de --output
|
sí | 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:
|
-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:
- Extrae el archivo
default.generated.config
del archivojetifier-core-*.jar
de la utilidad y guárdalo. - Realiza las modificaciones necesarias en tu copia del archivo de configuración.
- Pasa el archivo a la utilidad con la marca
-c
.
Por ejemplo:
./jetifier-standalone -i libraryToProcess.aar -o result.aar -c myCustomMapping.config