151 votes

Qu'est-ce que Jetifier?

Qu'est-ce que Jetifier? Par exemple, pour créer un nouveau projet à l'aide des dépendances packagées 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"?

114voto

Khemraj Points 8449

En supposant que vous êtes familier avec AndroidX. Si non, veuillez voir @ce post.

Jetifier convertira support libraries de l'ensemble de vos dépendances d' AndroidX automatiquement, si vous ne définissez pas à true alors votre projet aura à la fois, le support (obtenu obsolète après 28.0.0 la version) et AndroidX paquet, qui est redondant.

Par Exemple

Si vous avez PhotoView.java dans votre dépendance. Qui utilise la bibliothèque de prise en charge AppCompatImageView.

import android.support.v7.widget.AppCompatImageView;

Cette classe est déplacé maintenant à l' androidx paquet, alors, comment allons - PhotoView obtenir androidx AppCompatImageView? Et l'application s'exécute toujours dans le dispositif.

Qui a fait cette course ?

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

Jetifier va convertir android.support.v7.widget.AppCompatImageView de androidx.appcompat.widget.AppCompatImageView lors de la construction du projet.

Conclusion

Permettant Jetifier est important lorsque vous migrez à partir des Bibliothèques de Support à AndroidX.

Voir ce post pour comprendre plus au sujet de AndroidX.

Info

Votre code peut afficher le temps de compilation des erreurs après l'activation de la Jetifier lors de l'utilisation de la dépendance des classes. que vous pouvez supprimer en supprimant .idea, .gradle et re-synchronisation du projet.

image2

image1

88voto

silwar Points 1634

Cette année, la Google I/O (18), Google a annoncé Jetpack qui est défini ou d'une collection de bibliothèques pour faire du développeur vie plus facile.

Jetpack comprend déjà mis en place des Android des composants de l'architecture (ViewModel, une Salle, de Pagination, de LiveData etc.) ainsi que nouvellement introduit des composants de l'architecture comme WorkManager, de la Navigation. En dehors de cette Jetpack a aussi d'autres bibliothèques comme AndroidX, AndroidKTX etc.

AndroidX est la nouvelle structure de paquet pour Android bibliothèques de soutien, tels que le soutien, la liaison de données, le design etc.

par exemple, maintenant, sur les paroisses des développeurs va utiliser androidx.la liaison de données. au lieu d' android.la liaison de données. lors de l'importation de bibliothèques dans nos projets

Cela permet à Google d'ajouter SemVer ou Sémantique Versioning là paquets de bibliothèque. Pour les développeurs, cela signifie que nous n'avons pas à utiliser la même version de bibliothèque pour toutes les bibliothèques de prise en charge. Chaque support ou pour mieux dire AndroidX bibliothèque de maintenir ses propres versions.

Un autre avantage pour les développeurs, c'est que nous n'avons pas à les soins de maintien de la même version pour tous bibliothèque de prise en charge dans notre projet.

Sur Jetifier, il convertit tous les support package de dépendance au moment de la construction. Selon la documentation officielle de Jetifier

Jetifier outil migre soutien-bibliothèque-bibliothèques dépendantes de s'appuyer sur l'équivalent AndroidX de paquets au lieu. L'outil vous permet de migrer une de la bibliothèque directement, au lieu d'utiliser l'Android gradle plugin livré avec Android Studio.

Pour utiliser AndroidX dans un projet, nous avons la targetSdkVersion pour notre projet de 28 et ajouter les 2 lignes suivantes dans gradle.les propriétés de fichier.

android.useAndroidX=true

android.enableJetifier=true

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

MODIFIER

Ce lien a la cartographie de tout le soutien de la bibliothèque de composants avec leurs AndroidX contre-partie.

Veuillez également consulter Ce blog pour une explication détaillée sur AndroidX

14voto

Abhishek Kumar Points 167

Jetifier aide à la migration d'un projet android pour AndroidX.

Jetifier aide à faire de la 3e partie de la bibliothèque compatible avec votre AndroidX projet.

Si vous n'utilisez pas un 3ème partie de la bibliothèque dans votre projet android, alors vous n'avez pas besoin d'utiliser Jetifier parce que Jetifier aide seulement à "faire de la 3e partie de la bibliothèque" compatible avec votre projet dans le cas où vous êtes la migration de AndroidX. Donc, pour faire de votre projet une utilisation Jetifier, vous écrivez du code ci-dessous dans gradle.les propriétés.

android.enableJetifier=true
android.useAndroidX=true

Si vous n'êtes pas de la migration vers AndroidX et d'utiliser la manière d'Android à l'aide de bibliothèques(e.g: com.android.support), puis ces 3ème partie les bibliothèques n'ont pas besoin d'être compatible que ces 3ème partie les bibliothèques sont déjà compatibles avec les précédentes façon d'utiliser Android bibliothèques. Dans ce cas, vous n'avez pas besoin d'utiliser Jetifier, Alors maintenant, vous n'avez pas besoin d'écrire des lignes ci-dessus ou vous pouvez simplement écrire comme ci-dessous pour modifier les valeurs à l'avenir de passer à androidx:-

android.enableJetifier=false
android.useAndroidX=false

7voto

yoAlex5 Points 2350

De officiel doc

Lorsque cette option est définie à true, l'Android plugin migre automatiquement des bibliothèques tierces à utiliser AndroidX dépendances par la réécriture de leurs binaires. Le drapeau est à false par défaut si elle n'est pas spécifié.

Il est utile pour la compatibilité. Lorsqu'un Consommateur utilise androidX et un Producteur utilise support. Par exemple, quand votre projet sur AndroidX veut utiliser une dépendance qui utilise support library au lieu de AndroidX[Exemple]

5voto

Basi Points 304

Jetifier

Le jetifier est un outil pratique qui migre automatiquement votre dependencies de AndroidX au moment de la construction. Sans elle, vous auriez besoin de toutes les dépendances que vous utilisez pour avoir AndroidX version avant de migrer, et qui ne sera probablement pas se produire pendant un certain temps.

Il y a une limitation importante à noter: le jetifier ne fonctionne que sur les objets. Il ne fonctionne pas sur votre code source, vous êtes tenu de mettre à jour vous-même

pour permettre AndroidX, vous devez ajouter 2 drapeaux pour votre gradle.properties le fichier. Le premier drapeau indique le Android Plugin à utiliser AndroidX de paquets au lieu d' AppCompat, et le deuxième drapeau permettra à l' Jetifier :

android.useAndroidX=true
android.enableJetifier=true

Voir ce, ce post pour comprendre plus au sujet de AndroidX

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X