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"?
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.
En supposant que vous connaissez AndroidX
. Si non, s'il vous plaît voir @ ce post .
Jetifier
convertirasupport libraries
de toutes vos dépendances enAndroidX
automatiquement, si vous ne le définissez pas surtrue
, votre projet aura les deux, le support ( devenu obsolète après la version 28.0. ) et AndroidX , qui est redondant.
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.
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.
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.
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
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