web-dev-qa-db-fra.com

Qu'est-ce que Jetifier?

Qu'est-ce que Jetifier? Par exemple, pour créer un nouveau projet utilisant les dépendances générées par androidx, ce nouveau projet doit ajouter la ligne suivante au fichier gradle.properties:

Android.enableJetifier=true

Alors qu'est-ce que cela signifie - "activer le jetifier"?

73
Ksenia

Cette année, Google a annoncé le lancement de Jetpack, un ensemble de bibliothèques destiné à faciliter la vie des développeurs.

Jetpack inclut les composants architecturaux Android introduits précédemment (ViewModel, Room, Paging, LiveData, etc.), ainsi que les composants architecturaux nouvellement introduits tels que WorkManager, Navigation. En dehors de cela, Jetpack a également d'autres ensembles de bibliothèques comme AndroidX, AndroidKTX, etc.

AndroidX est une nouvelle structure de package pour Android bibliothèques de support comme le support, la liaison de données, la conception, etc.

par exemple. les développeurs vont maintenant utiliser androidx.databinding. au lieu de Android.databinding. lors de l'importation de bibliothèques dans nos projets

Cela permet à Google d’ajouter SemVer ou versioning sémantique dans ses packages de bibliothèque. Pour les développeurs, cela signifie que nous n'avons pas à utiliser la même version de bibliothèque de support pour toutes les bibliothèques de support. Chaque support ou mieux vaut dire que la bibliothèque AndroidX conservera son propre versioning.

Un autre avantage pour les développeurs est que nous n’avons pas à nous soucier de conserver la même version pour toutes les bibliothèques de support de notre projet.

À propos de Jetifier, il convertit tous les paquets de support de dépendance au moment de la construction. Selon la documentation officielle de Jetifier

L'outil Jetifier migre les bibliothèques dépendantes de la bibliothèque de support pour qu'elles reposent à la place sur les packages AndroidX équivalents. L'outil vous permet de migrer directement une bibliothèque individuelle, au lieu d'utiliser le plug-in Android gradle fourni avec Android Studio.

Pour utiliser AndroidX dans un projet, nous devons définir targetSdkVersion pour notre projet sur 28 et ajouter les deux lignes suivantes dans gradle .properties fichier.

Android.useAndroidX=true

Android.enableJetifier=true

J'espère que cela répondra à votre requête.

EDIT

Ce lien possède un mappage de tous les composants de la bibliothèque de support avec leur compteur AndroidX.

Veuillez également vous référer au This blog pour des explications détaillées sur AndroidX.

41
silwar

En supposant que vous connaissez AndroidX. Si non, s'il vous plaît voir @ ce post .

Jetifier convertira support libraries de toutes vos dépendances en AndroidX automatiquement, si vous ne le définissez pas sur true, votre projet aura les deux, le support ( devenu obsolète après la version 28.0. ) et AndroidX , qui est redondant.

Par exemple

Si vous avez PhotoView.Java dans votre dépendance. Cela utilise la bibliothèque de support AppCompatImageView.

import Android.support.v7.widget.AppCompatImageView;

Cette classe est maintenant déplacée dans le package androidx. Comment PhotoView obtiendra-t-il androidx AppCompatImageView? Et l'application fonctionne toujours dans l'appareil.

Qui a fait cette course?

Jetifier , qui convertit tous les packages de support de dépendance au moment de la construction.

Jetifier convertira Android.support.v7.widget.AppCompatImageView en androidx.appcompat.widget.AppCompatImageView pendant la construction du projet.

Conclusion

L'activation de Jetifier est importante lorsque vous migrez de bibliothèques de support vers AndroidX.

Voir cet article pour en savoir plus sur AndroidX.

Info

Votre code peut indiquer des erreurs de compilation après l’activation de Jetifier lors de l’utilisation de classes de dépendance. que vous pouvez supprimer en supprimant .idea, .gradle et en synchronisant à nouveau le projet.

image2

image1

54
Khemraj

Jetifier facilite la migration d'un projet Android vers AndroidX .

Jetifier aide à créer une bibliothèque tierce compatible avec votre projet AndroidX.

Si vous n'utilisez aucune bibliothèque tierce dans votre projet Android, vous n'avez pas besoin d'utiliser Jetifier, car Jetifier vous aide uniquement à "rendre la bibliothèque tierce" compatible avec votre projet au cas où vous migration vers AndroidX. Donc, pour que votre projet utilise Jetifier, vous écrivez ci-dessous le code dans gradle.properties .

Android.enableJetifier=true
Android.useAndroidX=true

Si vous ne migrez pas vers AndroidX et utilisez la méthode précédente utilisant les bibliothèques Android (par exemple: com.Android.support ) , ces bibliothèques tierces ne doivent pas nécessairement être rendues compatibles, car ces bibliothèques tierces sont déjà compatibles avec la méthode d’utilisation antérieure des bibliothèques Android. Dans ce cas, vous n'avez pas besoin d'utiliser Jetifier, vous n'avez donc pas besoin d'écrire les lignes indiquées ci-dessus ou vous pouvez simplement écrire comme ci-dessous pour modifier les valeurs à l'avenir afin de passer à androidx: -

Android.enableJetifier=false
Android.useAndroidX=false
5
Abhishek Kumar

Jetifier

Le jetifier est un outil pratique qui migre automatiquement votre dependencies vers AndroidX au moment de la compilation. Sans cela, vous auriez besoin de toutes les dépendances que vous utilisez pour disposer d'une version d'AndroidX avant de pouvoir migrer, ce qui ne se produira probablement pas avant un certain temps.

Il existe une limite importante à noter: le jetificateur ne fonctionne que sur les artefacts empaquetés. Cela ne fonctionne pas sur votre code source, que vous devez mettre à jour vous-même

pour activer AndroidX, vous devez ajouter 2 indicateurs au fichier gradle.properties. Le premier indicateur indique au plug-in Android d'utiliser les packages AndroidX au lieu de AppCompat, et le deuxième indicateur activera le Jetifier:

Android.useAndroidX=true
Android.enableJetifier=true

Voir this , this post pour en savoir plus sur AndroidX

0
Basi