Je lis sur une bibliothèque de salle d'Android. Je vois qu'ils ont changé de package android
pour androidx
. Je n'ai pas compris ça. Quelqu'un peut-il expliquer, s'il vous plaît?
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
Même cela est également disponible avec le android
package.
implementation "android.arch.persistence.room:runtime:$room_version"
annotationProcessor "android.arch.persistence.room:compiler:$room_version"
- Qu'est-ce qui avait besoin d'empaqueter de nouvelles bibliothèques de support au
androidx
lieu deandroid
? - Cas d'utilisation et facteurs d'influence dans les projets existants.
androidx.*
est la hiérarchie des packages pour les bibliothèques de support. Ils viendront tous dans le même paquet que nous arrivons à l'ère deandroidx
(comme les composants d'architecture, les autres bibliothèques de support).androidx
package de COREandroid
.Réponses:
AndroidX - Bibliothèque d'extensions Android
À partir de la documentation AndroidX
Besoin d'AndroidX
AndroidX est une bibliothèque repensée pour rendre les noms de packages plus clairs. Donc, à partir de maintenant, la hiérarchie Android sera réservée aux classes Android par défaut, qui est fournie avec le système d'exploitation Android et d'autres bibliothèques / dépendances feront partie d' Androidx (cela a plus de sens). Donc, désormais, 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: material
Mappages d'artefacts complets pour les packages AndroidX
AndroidX utilise la version sémantique
Auparavant,
support library
utilisé la version SDK, mais AndroidX utilise leSemantic-version
. Il va re-version de 28.0.0 → 1.0.0.Comment migrer le projet en cours
Dans Android Studio 3.2 (septembre 2018), il existe une option directe pour migrer le projet existant vers
AndroidX
. Ce refactoriser tous les packages automatiquement.Avant de migrer, il est fortement recommandé de sauvegarder votre projet.
Mettez ces drapeaux dans votre
gradle.properties
Vérifiez les mappages @ Library pour un package AndroidX égal .
Consultez la page officielle de Migrate to AndroidX
Qu'est-ce que Jetifier?
Bugs de migration
Le support 28.0.0 est la dernière version?
Depuis Android Support Revision 28.0.0
Allez donc avec AndroidX, car Android ne mettra à jour que le package androidx.
Lectures complémentaires
https://developer.android.com/topic/libraries/support-library/androidx-overview
https://android-developers.googleblog.com/2018/05/hello-world-androidx.html
la source
enableJetifier=false
est la valeur par défaut. C'est faux quand vous ne le définissez pas. Cela signifie qu'aucune de vos bibliothèques ne sera réécrite sur AndroidX.Migrate to AndroidX
Sur la base de la documentation :
La structure de package repensée vise à encourager des bibliothèques plus petites et plus ciblées. Vous trouverez des détails concernant les mappages d'artefacts ici .
Il existe des bibliothèques de support (contenant des composants et des packages pour la compatibilité descendante) nommées "v7" lorsque le niveau de SDK minimal pris en charge est 14, la nouvelle dénomination permet de comprendre clairement la division entre les API fournies avec la plate-forme et les bibliothèques pour les développeurs d'applications qui sont utilisées. sur différentes versions d'Android. Vous pouvez vous référer à l'annonce officielle pour plus de détails.
la source
AndroidX est le projet open-source que l'équipe Android utilise pour développer, tester, empaqueter, versions et versions de librairies dans Jetpack .
AndroidX est une amélioration majeure de la bibliothèque de support Android d' origine . Comme la bibliothèque de support, AndroidX est livré séparément du système d'exploitation Android et offre une compatibilité descendante entre les versions d'Android. AndroidX remplace entièrement la bibliothèque de support en fournissant la parité des fonctionnalités et de nouvelles bibliothèques.
Tous les packages dans AndroidX vivent 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 de la génération des artefacts vers les nouvelles, consultez la page Refactorisation de packages.
Contrairement à la bibliothèque de support, les packages AndroidX sont gérés et mis à jour séparément. Les packages androidx utilisent strictement à
Semantic Versioning
partir de la version 1.0.0. Vous pouvez mettre à jour les bibliothèques AndroidX dans votre projet indépendamment.Tous les nouveaux développements de la bibliothèque de support auront lieu dans la bibliothèque AndroidX. Cela comprend la maintenance des artefacts de la bibliothèque de support d'origine et l'introduction de nouveaux composants Jetpack.
Utiliser AndroidX
Voir Migration vers AndroidX pour savoir comment 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 et définir les deux indicateurs de plug-in Android Gradle suivants sur true dans votre
gradle.properties
fichier.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 pour utiliser AndroidX en réécrivant leurs fichiers binaires. Le drapeau est faux par défaut s'il n'est pas spécifié.Pour les mappages d'artefacts, voir ceci
la source
Cet article Android Jetpack: que signifient les annonces récentes pour la bibliothèque d'assistance d'Android? l'explique bien
la source
Quelques ajouts de mon côté à toutes les réponses disponibles
Besoin d'AndroidX
Avec la convention de dénomination actuelle, il n'est pas clair quels packages sont fournis avec le système d'exploitation Android et lesquels sont fournis avec l' APK de votre application ( Kit de package Android ). Pour éclaircir cette confusion, toutes les bibliothèques dégroupées seront déplacés vers AndroidX « s androidx. * Espace de noms, alors que la hiérarchie de package android. * Sera réservé pour les paquets livrés avec le système d'exploitation Android.
A part ça,
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 a augmenté l' API minimum à 14 , donc aujourd'hui de nombreux noms de packages n'ont rien à voir avec le niveau d'API minimum pris en charge. Lorsque support-v4 et les packages support-v7 ont tous les deux une API minimale de 14, il est facile de comprendre pourquoi les gens sont confus! Donc maintenant avec AndroidX, il n'y a aucune dépendance au niveau de l'API.
Un autre changement important est que les artefacts AndroidX seront mis à jour indépendamment, vous pourrez donc mettre à jour les bibliothèques AndroidX individuelles dans votre projet, plutôt que d'avoir à modifier chaque dépendance à la fois. Ces messages frustrants « Toutes les bibliothèques com.android.support doivent utiliser exactement la même spécification de version » devraient devenir une chose du passé!
la source
J'ai découvert AndroidX grâce à cette vidéo Android Dev Summit . Le résumé est -
la source
C'est la même chose que les versions de support AppCompat, mais il a moins de dégâts des versions v4 et v7, il est donc beaucoup plus utile d'utiliser les différents composants des éléments XML Android.
la source
androidx
remplacerasupport library
après28.0.0
. Vous devez migrer votre projet pour l'utiliser.androidx
utiliseSemantic Versioning
. L'utilisationAndroidX
ne sera pas confondue avec la version présentée dans le nom de la bibliothèque et le nom du package. La vie devient plus facile[AndroidX et compatibilité de support]
la source
AndroidX est le projet open source que l'équipe Android utilise pour développer, tester, empaqueter, versions et versions de librairies dans Jetpack.
Après des heures de difficultés, je l'ai résolu en incluant les éléments suivants dans app / build.gradle:
Mettez ces drapeaux dans votre gradle.properties
Lors de la migration sur Android studio, le fichier app / gradle est automatiquement mis à jour avec les implémentations de la bibliothèque de correction de la bibliothèque standard
Reportez-vous à: https://developer.android.com/jetpack/androidx/migrate
la source
Android propose deux ensembles de bibliothèques différents. L'un s'appelle la bibliothèque de support Android et l'autre s'appelle AndroidX. La sélection de "Utiliser les artefacts Android. *" Indique que nous voulons utiliser AndroidX.
la source