web-dev-qa-db-fra.com

Qu'est-ce qu'AndroidX

Je lis sur la bibliothèque de la salle de Android. Je vois qu'ils ont changé le paquet Android en androidx. Je n'ai pas compris ça. Quelqu'un expliquer s'il vous plaît.

implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"

Même ceci est disponible avec le package Android également.

implementation "Android.Arch.persistence.room:runtime:$room_version"
annotationProcessor "Android.Arch.persistence.room:compiler:$room_version"
  • Quel était le besoin de regrouper les nouvelles bibliothèques de support dans androidx au lieu de Android?.
  • Cas d'utilisation et facteurs d'affectation dans les projets existants.
165
Khemraj

AndroidX - Android bibliothèque d'extension

À partir de documentation AndroidX

Nous mettons en place une nouvelle structure de packages pour préciser les packages fournis avec le système d'exploitation Android et ceux fournis avec l'APK de votre application. À l'avenir, la hiérarchie de packages Android. * Sera réservée aux Android packages fournis avec le système d'exploitation. D'autres packages seront publiés dans la nouvelle hiérarchie de packages androidx. * Dans le cadre de la bibliothèque AndroidX.

Besoin d'AndroidX

AndroidX est une bibliothèque repensée pour rendre les noms de paquet plus clairs. Donc, à partir de maintenant Android la hiérarchie sera pour seulement Android les classes par défaut, fournies avec Android système d'exploitation et d'autres bibliothèques/dépendances feront partie de androidx (plus logique). Donc, à partir de maintenant, tous les nouveaux développements seront mis à jour dans androidx.

com.Android.support. **: androidx.
com.Android.support:appcompat-v7: androidx.appcompat: appcompat com.Android.support:recyclerview-v7: androidx.recyclerview: recyclerview com.Android.support:design: com.google.Android.material: matériau

Mappages d'artefacts complets pour les packages AndroidX

AndroidX utilise version sémantique

Auparavant, _support library_ utilisait la version du SDK mais AndroidX utilisait le Semantic-version . La version sera révisée de 28.0.0 à 1.0.0.

Comment migrer le projet actuel

Dans Android Studio 3.2 (septembre 2018), il existe une option directe pour migrer le projet existant vers AndroidX. Ce refactor tous les paquets automatiquement.

Avant de migrer, il est vivement recommandé de sauvegarder votre projet.

Projet existant

  • Android Studio> Menu Refactor> Migrer vers AndroidX ...
  • Il analysera et ouvrira la fenêtre du réfracteur en bas. Accepter les changements à faire.

image

Nouveau projet

Mettez ces drapeaux dans votre _gradle.properties_

_Android.enableJetifier=true
Android.useAndroidX=true
_

Vérifiez les mappages de bibliothèque @ pour un package AndroidX identique .

Vérifier @ Page officielle de Migrer vers AndroidX

Qu'est-ce que Jetifier?

Bugs de migration

  • Si vous créez une application et que vous trouvez des erreurs après la migration, vous devez corriger ces erreurs mineures. Vous ne serez pas coincé là-bas, car cela peut être facilement résolu.
  • Les bibliothèques tierces ne sont pas converties vers AndroidX dans le répertoire, mais elles sont converties au moment de l'exécution par Jetifier , alors ne vous inquiétez pas des erreurs de compilation, votre application fonctionnera parfaitement.

Support 28.0.0 est la dernière version?

À partir de Android Support Revision 28.0.0

Ce sera la dernière version du package Android.support , et les développeurs sont invités à migrer vers AndroidX 1.0.0.

Alors, allez avec AndroidX, car Android ne mettra à jour que le paquet androidx à partir de maintenant.

Lectures complémentaires

https://developer.Android.com/topic/libraries/support-library/androidx-overview

https://Android-developers.googleblog.com/2018/05/hello-world-androidx.html

237
Khemraj

Basé sur le documentation :

androidx est une nouvelle structure de packages qui permet de préciser les packages fournis avec le système d'exploitation Android et ceux fournis avec le fichier APK de votre application. À l'avenir, la hiérarchie des packages Android. * Sera réservée aux Android packages fournis avec le système d'exploitation; d'autres packages seront publiés dans la nouvelle hiérarchie de packages androidx. *.

La structure de package repensée consiste à encourager les bibliothèques plus petites et plus ciblées. Vous trouverez des détails sur les mappages d'artefacts ici .

Il existe des bibliothèques de support (contenant des composants et des packages pour la compatibilité ascendante) nommées "v7" lorsque le niveau de SDK minimal pris en charge est de 14, le nouveau nommage permet de comprendre la division entre les API fournies avec la plate-forme et les bibliothèques utilisées par les développeurs d'applications. sur différentes versions d'Android. Vous pouvez vous référer à annonce officielle pour plus de détails.

19
Sagar

AndroidX est le projet open-source utilisé par l'équipe Android pour développer, tester, créer des packages, créer des versions et publier des bibliothèques. Jetpack .

AndroidX est une amélioration majeure de la version précédente de la bibliothèque de support Android . À l'instar de la bibliothèque de support, AndroidX est livré séparément du système d'exploitation Android et offre une compatibilité ascendante entre les versions de Android. AndroidX remplace totalement la bibliothèque de support en fournissant une parité des fonctionnalités et de nouvelles bibliothèques.

AndroidX comprend les fonctionnalités suivantes:

  • Tous les packages sous AndroidX résident dans un espace de noms cohérent commençant par la chaîne androidx. Les packages de la bibliothèque de support ont été mappés dans les packages androidx. * Correspondants. Pour un mappage complet de toutes les anciennes classes et créer des artefacts pour les nouveaux, voir la page Refactoring de paquet.

  • Contrairement à la bibliothèque de support, les packages AndroidX sont gérés et mis à jour séparément. Les packages androidx utilisent strict Semantic Versioning à partir de la version 1.0.0. Vous pouvez mettre à jour les bibliothèques AndroidX de votre projet indépendamment.

  • Tous les nouveaux développements de la bibliothèque de support auront lieu dans la bibliothèque AndroidX. Cela inclut la maintenance des artefacts de la bibliothèque de support d'origine et l'introduction de nouveaux composants Jetpack.

Utilisation d'AndroidX

Voir Migration vers AndroidX pour apprendre à migrer un projet existant.

Si vous souhaitez utiliser AndroidX dans un nouveau projet, vous devez définir le SDK de compilation sur Android 9.0 (API niveau 28) ou supérieur, ainsi que sur les deux Android drapeaux du plug-in Gradle. vrai dans votre fichier gradle.properties.

  • Android.useAndroidX: lorsqu'il est défini sur true, le plug-in Android utilise la bibliothèque AndroidX appropriée au lieu d'une bibliothèque de support. Le drapeau est faux par défaut s'il n'est pas spécifié.

  • Android.enableJetifier: lorsqu'il est défini sur true, le plug-in Android migre automatiquement les bibliothèques tierces existantes afin qu'elles utilisent AndroidX en réécrivant leurs fichiers binaires. Le drapeau est faux par défaut s'il n'est pas spécifié.

Pour mappages d'artefacts voir this

12
Basi

Cet article Android Jetpack: Que signifient les annonces récentes pour la bibliothèque de support d'Android? l'explique bien

Aujourd'hui, nombreux sont ceux qui considèrent que la bibliothèque de support est un élément essentiel du développement d'applications Android, à tel point qu'elle est utilisée par 99% des applications du Google Play Store. Cependant, à mesure que la bibliothèque de support s’est développée, des incohérences se sont glissées autour de la convention de nommage de la bibliothèque.

Initialement, le nom de chaque package indiquait le niveau d'API minimum pris en charge par ce package, par exemple support-v4. Cependant, la version 26.0.0 de la bibliothèque de support augmentait le minimum d'API à 14, de sorte que de nombreux noms de packages n'ont aujourd'hui aucun rapport avec le niveau minimum d'API pris en charge. Lorsque les packages support-v4 et support-v7 ont tous les deux une API minimale de 14, il est facile de comprendre pourquoi les gens se perdent!

Pour dissiper cette confusion, Google est en train de refactoriser la bibliothèque de support dans une nouvelle structure de package Android bibliothèque d'extension (AndroidX). AndroidX comportera des noms de packages simplifiés, ainsi que des identifiants Maven groupIds et artifactIds qui reflètent mieux le contenu de chaque package et les niveaux d’API pris en charge.

Avec la convention de dénomination en vigueur, il n’est pas précisé non plus quels packages sont fournis avec le système d’exploitation Android et lesquels sont fournis avec l’APK de votre application (Android Package Kit). Pour dissiper cette confusion, toutes les bibliothèques dégroupées seront déplacées vers l’espace de noms androidx. * D’AndroidX, tandis que la hiérarchie de paquets Android. * Sera réservée aux packages livrés avec le système d’exploitation Android.

5
onmyway133

Juste quelques ajouts de mon côté à toutes les réponses disponibles

Besoin d'AndroidX

  1. Comme dit dans la réponse incroyable de @KhemRaj,

Avec la convention de dénomination en vigueur, il n’est pas précisé quels packages sont fournis avec système d’exploitation Android, et lesquels sont fournis avec le APK de votre application (Kit de développement Android). Pour dissiper cette confusion, toutes les bibliothèques dégroupées seront déplacées vers l'espace de noms androidx. * De AndroidX, tandis que la hiérarchie de packages Android. * Sera réservée aux packages livrés avec le Android. système opérateur.

  1. Autre que cela,

    Initialement, le nom de chaque package indiquait le niveau d'API minimum pris en charge par ce package, par exemple support-v4. Cependant, la version 26.0. de la bibliothèque de support a augmenté le nombre API minimale à 14, de sorte que de nombreux noms de packages n'ont aujourd'hui rien à voir avec le niveau minimal d'API pris en charge. Lorsque les packages support-v4 et support-v7 ont tous les deux une API minimale de 14, il est facile de comprendre pourquoi les gens se perdent !. Alors maintenant, avec AndroidX, il n'y a pas de dépendance au niveau de l'API.

Un autre changement important est la mise à jour indépendante des artefacts AndroidX. Vous pourrez ainsi mettre à jour des bibliothèques individuelles AndroidX de votre projet, sans avoir à changer toutes les dépendances à la fois. Ces messages frustrants "Toutes les bibliothèques com.Android.support doivent utiliser exactement la même spécification de version" devraient désormais appartenir au passé!

2
Abhishek Kumar

C'est la même chose que les versions AppCompat du support, mais avec moins de problèmes de versions v4 et v7, il est donc très utile d'utiliser Utilisation des différents composants des éléments XML Android.

1
raj kavadia