what support releases refactor jetpack android gradle androidx

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 de support libraries de todas sus dependencias a AndroidX automáticamente, si no lo configura como true 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.