android - support - ¿Qué es Jetifier?
use androidx (4)
Este año, Google I / O (18), Google ha anunciado Jetpack que está configurado / colección de bibliotecas para facilitar la vida del desarrollador.
Jetpack incluye componentes de arquitectura de Android previamente introducidos (ViewModel, Room, Paging, LiveData, etc.), así como componentes de arquitectura recientemente introducidos como WorkManager, Navigation. Aparte de esto, Jetpack también tiene otro conjunto de bibliotecas como AndroidX, AndroidKTX, etc.
AndroidX es una nueva estructura de paquetes para bibliotecas de soporte de Android como soporte, enlace de datos, diseño, etc.
por ejemplo, ahora en las salas los desarrolladores utilizarán androidx.databinding. en lugar de android.databinding. Al importar bibliotecas en nuestros proyectos.
Esto permite que Google agregue las versiones de SemVer o Semantic en los paquetes de la biblioteca. Para los desarrolladores, esto significa que no tenemos que usar la misma versión de biblioteca de soporte para todas las bibliotecas de soporte. Cada soporte o mejor dicho, la biblioteca de AndroidX mantendrá su propia versión.
Otra ventaja para los desarrolladores es que no tenemos que preocuparnos por mantener la misma versión para todas las bibliotecas de soporte en nuestro proyecto.
Acerca de Jetifier, convierte todo el paquete de soporte de dependencia en el momento de la compilación. Según la documentación oficial de Jetifier
La herramienta Jetifier migra bibliotecas dependientes de la biblioteca de soporte para depender de los paquetes de AndroidX equivalentes. La herramienta le permite migrar una biblioteca individual directamente, en lugar de usar el complemento gradle de Android incluido con Android Studio.
Para usar AndroidX en un proyecto, debemos establecer targetSdkVersion para nuestro proyecto en 28 y agregar las siguientes 2 líneas en el archivo gradle.properties .
android.useAndroidX=true
android.enableJetifier=true
Espero que esto responda a su consulta.
EDITAR
Este enlace tiene la asignación de todos los componentes de la biblioteca de soporte con su parte de contador AndroidX.
También consulte This blog para una explicación detallada sobre AndroidX
¿Qué es Jetifier? Por ejemplo, para crear un nuevo proyecto utilizando las dependencias empaquetadas de androidx, este nuevo proyecto debe agregar la siguiente línea al archivo gradle.properties :
android.enableJetifier=true
Entonces, ¿qué significa "habilitar el jetifier"?
Suponiendo que está al tanto de
AndroidX
, si no, consulte @
esta publicación
.
Jetifier
convertirásupport libraries
desupport libraries
de todas sus dependencias aAndroidX
automáticamente, si no lo configura comotrue
entonces su proyecto tendrá soporte tanto ( quedará en desuso después de la versión 28.0.0 ) como el paquete AndroidX , que es redundante.
Por ejemplo
Si tienes
PhotoView.java
en tu dependencia.
Que utiliza la biblioteca de soporte
AppCompatImageView
.
import android.support.v7.widget.AppCompatImageView;
Esta clase se mueve ahora al paquete
androidx
, así que, ¿cómo obtendrá
PhotoView
androidx
AppCompatImageView
?
Y la aplicación todavía se ejecuta en el dispositivo.
¿Quién hizo esta carrera?
Jetifier , que convierte todo el paquete de soporte de dependencia en el momento de la compilación.
Jetifier convertirá
android.support.v7.widget.AppCompatImageView
a
androidx.appcompat.widget.AppCompatImageView
al
androidx.appcompat.widget.AppCompatImageView
el proyecto.
Conclusión
Habilitar Jetifier es importante cuando migra de las bibliotecas de soporte a AndroidX .
Vea esta publicación para entender más sobre AndroidX.
Información
Su código puede mostrar errores de tiempo de compilación después de habilitar Jetifier mientras usa clases de dependencia.
que puede eliminar al eliminar
.idea
,
.gradle
y volver a sincronizar el proyecto.
Jetifier ayuda a migrar un proyecto de Android a AndroidX .
Jetifier ayuda a que la biblioteca de terceros sea compatible con su proyecto AndroidX.
Si no está utilizando ninguna biblioteca de terceros en su proyecto de Android, entonces no necesita usar Jetifier porque Jetifier solo ayuda a "hacer que la biblioteca de terceros" sea compatible con su proyecto en caso de que esté migrando a AndroidX. Entonces, para hacer que su proyecto use Jetifier, escriba el código a continuación en gradle.properties .
android.enableJetifier=true
android.useAndroidX=true
Si no está migrando a AndroidX y está utilizando la forma anterior de usar las bibliotecas de Android (por ejemplo: com.android.support ), entonces estas bibliotecas de terceros no deben ser compatibles, ya que estas bibliotecas de terceros ya son compatibles con la forma anterior de utilizando bibliotecas de Android. En caso de que no esté utilizando Jetifier, use el siguiente código:
android.enableJetifier=false
android.useAndroidX=true
Jetifier
El
developer.android.com/studio/command-line/jetifier
es una herramienta útil que migra automáticamente sus
dependencies
a
AndroidX
en el momento de la compilación.
Sin él, necesitarías cada dependencia que utilices para tener una versión de AndroidX antes de poder migrar, y eso probablemente no sucederá por algún tiempo.
Hay una limitación importante a tener en cuenta: el jetifier solo funciona en artefactos empaquetados. No funciona en su código fuente, que se espera que usted actualice
para habilitar AndroidX, debe agregar 2 indicadores a su archivo
gradle.properties
.
La primera bandera le dice al
AndroidX
Android que use paquetes
AndroidX
lugar de
AppCompat
, y la segunda bandera habilitará el
Jetifier
:
android.useAndroidX=true
android.enableJetifier=true
Mira this , this publicación para entender más sobre AndroidX.