AndroidX : qu'est-ce que c'est, bibliothèques clés et migration

Auteur : IT Sectr Publié le : 2026-05-01 Temps de lecture : 8 min

AndroidX est un ensemble de bibliothèques Jetpack de Google qui a remplacé l'ancienne Support Library. Selon la Google Developer Documentation, 2024, AndroidX fournit des composants rétrocompatibles pour toutes les versions d'Android et constitue la norme du développement Android moderne. Les bibliothèques AndroidX incluent des outils pour l'UI, la navigation, le traitement des données, l'appareil photo et les tâches en arrière-plan.

Points essentiels

  • AndroidX est le successeur de Support Library, publié en 2018 dans le cadre de Jetpack
  • Les bibliothèques AndroidX sont indépendantes de la version d'API et fonctionnent sur les appareils Android 4.0+
  • La migration depuis Support Library s'effectue automatiquement via Android Studio
  • Modules principaux : Activity, Fragment, RecyclerView, Navigation, Room, WorkManager
  • Le versionnage sémantique permet de mettre à jour les bibliothèques indépendamment les unes des autres

Qu'est-ce qu'AndroidX

AndroidX est une bibliothèque open source qui fait partie d'Android Jetpack. Google a publié AndroidX en 2018 en remplacement de Support Library, qui fournissait des composants rétrocompatibles pour les anciennes versions d'Android depuis 2011.

Avant AndroidX, chaque composant de Support Library avait sa propre version liée à targetSdkVersion. Les développeurs devaient inclure plusieurs versions de la même bibliothèque simultanément, ce qui entraînait des conflits de dépendances et une augmentation de la taille de l'APK.

AndroidX a résolu ce problème grâce au versionnage sémantique (SemVer). Désormais, chaque bibliothèque est un artefact Gradle indépendant avec une version au format MAJOR.MINOR.PATCH. Les développeurs peuvent mettre à jour Room de 2.4.0 à 2.6.0 sans toucher à Activity, Fragment ou d'autres modules.

Historique d'AndroidX

La première version stable d'AndroidX 1.0.0 est sortie en décembre 2018 avec Android 9 Pie. Google a annoncé que Support Library passait en mode maintenance et que tous les nouveaux composants — Navigation, WorkManager, Compose — seraient publiés uniquement dans le cadre d'AndroidX. La dernière version de Support Library — 28.0.0 — est sortie en 2019.

Selon Google I/O 2019, la raison clé de la transition était la nécessité d'accélérer les publications de mises à jour. Dans l'ancien modèle, une bibliothèque devait attendre une autre en raison d'une version unique de paquet. AndroidX a supprimé ce goulot d'étranglement, et Jetpack a commencé à recevoir des versions majeures et mineures tous les 2 à 3 mois.

Différences entre AndroidX et Support Library

La principale différence est l'espace de noms. Support Library utilisait le paquet android.support.*, tandis qu'AndroidX est passé à androidx.*. Ce changement a permis de diviser les bibliothèques en modules fonctionnels. Par exemple, Fragment dans Support Library s'appelait android.support.v4.app.Fragment, alors que dans AndroidX il s'agit d'androidx.fragment.app.Fragment.

La deuxième différence importante est l'architecture. AndroidX est fourni avec Jetpack — un ensemble de recommandations d'architecture d'applications. Jetpack inclut ViewModel, LiveData, Room, Navigation et WorkManager, conçus comme un écosystème unifié plutôt que comme des utilitaires dispersés.

La rétrocompatibilité s'est également améliorée. Alors que Support Library prenait en charge Android 2.3+, AndroidX garantit le fonctionnement sur les appareils sous Android 4.0 (API 14) et supérieur — couvrant plus de 99 % des appareils actifs selon Google Play Console 2024.

Composition des bibliothèques AndroidX

AndroidX comprend plus de 100 bibliothèques regroupées par catégorie. Chaque groupe couvre un domaine spécifique : UI, données, navigation, tâches en arrière-plan, multimédia et tests. Vous trouverez ci-dessous un aperçu des modules clés.

Bibliothèques de base et noyau

androidx.core:core est la bibliothèque de base qui contient des versions rétrocompatibles des API système : NotificationCompat, ActivityCompat, ContextCompat. Le module core-ktx fournit des extensions Kotlin pour travailler avec les fichiers, SharedPreferences et les éléments de vue.

La bibliothèque androidx.activity:activity a introduit l'API Activity Result (registerForActivityResult), remplaçant l'obsolète startActivityForResult. Le module fragment:fragment gère le cycle de vie des fragments et prend en charge FragmentManager pour les transactions et la pile arrière.

androidx.lifecycle est le fondement de l'architecture Jetpack. LifecycleOwner et LifecycleObserver permettent aux composants de réagir aux changements du cycle de vie d'Activity ou de Fragment. ViewModel préserve les données lors de la rotation de l'écran, tandis que LiveData notifie l'UI des modifications de données.

kotlin
class MainViewModel : ViewModel() {
    private val _users = MutableLiveData<List<User>>()
    val users: LiveData<List<User>> = _users

    fun loadUsers() {
        viewModelScope.launch {
            val result = repository.getUsers()
            _users.value = result
        }
    }
}

Bibliothèques d'UI

androidx.recyclerview:recyclerview est un composant puissant pour afficher des listes et des grilles. RecyclerView prend en charge LayoutManager (LinearLayoutManager, GridLayoutManager), ItemDecoration et les animations via ItemAnimator. La bibliothèque ListAdapter avec AsyncListDiffer simplifie la mise à jour des listes avec calcul automatique des différences.

androidx.navigation:navigation est une bibliothèque pour la navigation entre les écrans. Le Navigation Component fonctionne avec NavHostFragment et NavController, prend en charge Safe Args pour passer des paramètres typés et Deep Links pour les liens externes. NavGraph décrit tous les itinéraires dans un fichier XML.

androidx.compose.ui est un framework d'UI déclarative, Jetpack Compose, construit sur Kotlin. Contrairement au système View, Compose ne redessine que les éléments modifiés via la recomposition. Les composants Material Design 3 (Button, TextField, Scaffold) sont disponibles dans le module material3.

BibliothèqueArtefactObjectif
Fragmentandroidx.fragmentGestion des fragments et transactions
RecyclerViewandroidx.recyclerviewListes et grilles optimisées
Navigationandroidx.navigationNavigation entre écrans
Compose UIandroidx.compose.uiUI déclarative en Kotlin

Bibliothèques de données

androidx.room:room est un ORM pour le stockage local de données. Room génère des classes DAO à partir de requêtes SQLite annotées, valide la syntaxe SQL à la compilation et prend en charge RxJava et Kotlin Flow. La version 2.6 inclut le support de KSP pour une génération de code plus rapide.

androidx.work:workmanager est une bibliothèque pour les tâches en arrière-plan avec exécution garantie. WorkManager prend en charge les tâches périodiques, les chaînes de travail (beginWith, then) et les critères de lancement (Constraints : réseau, charge, stockage). Même si l'application est fermée, WorkManager livre la tâche après le redémarrage de l'appareil.

androidx.datastore:datastore est un remplacement moderne de SharedPreferences. DataStore utilise Kotlin Coroutines et Flow, fonctionne de manière synchrone et asynchrone, évitant le blocage du thread UI. Preferences DataStore stocke de simples paires clé-valeur, tandis que Proto DataStore gère des objets typés via Protocol Buffers.

Comment migrer vers AndroidX

La migration automatique est la méthode recommandée par Google pour passer de Support Library à AndroidX. Android Studio depuis la version 3.2 inclut l'outil intégré Refactor Migrate to AndroidX, qui remplace les espaces de noms et met à jour les dépendances dans build.gradle.

Avant la migration, vous devez mettre à jour la version de compileSdk à 28 ou plus. Assurez-vous également que toutes les bibliothèques tierces prennent en charge AndroidX. Si une dépendance n'a pas encore migré, utilisez le flag android.enableJetifier=true dans gradle.properties — il réécrit automatiquement le bytecode des bibliothèques tierces.

Migration automatique dans Android Studio

Dans Android Studio, sélectionnez Refactor Migrate to AndroidX dans le menu. L'IDE analysera l'ensemble du projet, trouvera toutes les importations du paquet android.support.* et les remplacera par androidx.*. Les dépendances dans app/build.gradle seront également mises à jour — les artefacts Support Library seront remplacés par les versions AndroidX correspondantes.

Après la migration, Gradle Sync peut afficher des erreurs si certaines dépendances n'ont pas été trouvées. Vérifiez la liste des bibliothèques utilisées dans la documentation Google Maven — tous les artefacts AndroidX sont publiés sur google(). Si une bibliothèque n'est pas disponible, ajoutez mavenCentral() dans repositories.

groovy
android {
    compileSdk 34
}

dependencies {
    // Support Library (obsolète)
    // implementation 'com.android.support:appcompat-v7:28.0.0'
    
    // AndroidX
    implementation 'androidx.core:core-ktx:1.13.1'
    implementation 'androidx.appcompat:appcompat:1.7.0'
    implementation 'androidx.activity:activity-ktx:1.9.3'
    implementation 'androidx.fragment:fragment-ktx:1.8.5'
    implementation 'androidx.recyclerview:recyclerview:1.3.2'
    implementation 'androidx.room:room-runtime:2.6.1'
    ksp 'androidx.room:room-compiler:2.6.1'
}

Migration manuelle

Si le projet est trop volumineux ou contient des Vues personnalisées de Support Library, le remplacement automatique peut être incomplet. Remplacez manuellement toutes les chaînes dans le code : modifiez les importations, les attributs XML (app/src/main/res) et les références dans le manifeste. Pour les attributs Support Library, le préfixe android: devient app: (par exemple, app:cardCornerRadius au lieu de android:cardCornerRadius).

Après la migration manuelle, vérifiez les références R. Support Library exportait les ressources via android.support.v7.appcompat.R, tandis qu'AndroidX utilise androidx.appcompat.R. Recherchez dans le projet et remplacez toutes les références aux anciens chemins R. La compilation du projet doit se terminer sans erreurs ni avertissements de dépréciation.

Avantages de l'utilisation d'AndroidX

Le premier avantage d'AndroidX est la modularité. Vous n'incluez que les bibliothèques que vous utilisez réellement. Si votre application a seulement besoin de RecyclerView et Navigation, il n'est pas nécessaire d'inclure toute Support Library avec tous ses composants View. Cela réduit la taille de l'APK et accélère le temps de compilation.

Le deuxième avantage est les mises à jour régulières. Jetpack publie des versions stables tous les 1 à 3 mois. Room 2.6.0, sorti en 2024, a ajouté le support de KSP et la compatibilité avec Kotlin 2.0. Navigation 2.8.0 a introduit des routes typées basées sur Kotlinx Serialization. Les développeurs obtiennent de nouvelles fonctionnalités sans attendre la prochaine version d'Android.

Le troisième avantage est l'intégration avec Kotlin. Toutes les bibliothèques AndroidX ont des modules -ktx avec des fonctions d'extension. viewLifecycleOwner.lifecycleScope lance des coroutines dans le contexte du fragment, collectLatest traite Flow, et SharedFlow et StateFlow sont entièrement compatibles avec les composants lifecycle-aware. Cela rend le code plus concis et plus sûr.

La rétrocompatibilité est un avantage clé d'AndroidX par rapport aux nouvelles API de la plateforme. Vous pouvez utiliser AppCompatDelegate.setDefaultNightMode pour le thème sombre sur Android 4.0+, NotificationCompat.setBubble pour les bulles sur Android 5.0+ et LocationRequestCompat pour la localisation fusionnée sur Android 4.0+. La couverture des appareils atteint 99 % sans augmenter la version minimale du SDK.

Le quatrième avantage est le test. AndroidX inclut la bibliothèque androidx.test pour écrire des tests instrumentés et unitaires. FragmentScenario et ActivityScenario permettent de tester les composants d'UI en isolation, tandis que TestNavHostController permet de vérifier la navigation sans exécuter un appareil réel. MockK et Robolectric complètent l'écosystème.

Questions fréquentes

Quelle est la différence entre AndroidX et Support Library ?

AndroidX utilise l'espace de noms androidx.* au lieu de android.support.*, dispose d'un versionnage indépendant (SemVer), inclut les bibliothèques Jetpack et prend en charge les extensions Kotlin -ktx. Support Library a été figée à la version 28.0.0 en 2019.

Comment ajouter AndroidX à un nouveau projet ?

Dans Android Studio, activez le flag Use AndroidX à l'étape de création du projet. Pour les projets existants, ajoutez android.useAndroidX=true et android.enableJetifier=true dans gradle.properties. Remplacez ensuite les dépendances dans build.gradle par des artefacts du groupe androidx.

La migration vers AndroidX est-elle obligatoire ?

Google Play exige que toutes les applications et mises à jour utilisent AndroidX. La maintenance de Support Library a été interrompue et elle ne reçoit plus de correctifs de sécurité. Si votre application n'a pas encore migré, cela peut entraîner le rejet de la mise à jour dans Google Play Console.

Qu'est-ce que Jetpack dans Android ?

Jetpack est un ensemble de bibliothèques, d'outils et de directives de Google pour le développement d'applications Android. AndroidX est le fondement de Jetpack. Jetpack inclut Architecture Components (Lifecycle, ViewModel, Room), UI (Compose, Fragment, RecyclerView) et Behavior (WorkManager, Navigation, CameraX).

Peut-on utiliser AndroidX avec Jetpack Compose ?

Oui, Jetpack Compose lui-même fait partie d'AndroidX (androidx.compose.ui). Les bibliothèques ViewModel, Navigation, Room et WorkManager sont entièrement compatibles avec Compose. Les fonctions collectAsState() et collectAsStateWithLifecycle() assurent l'intégration de Flow avec les fonctions Composable.

Résumé

  • AndroidX est un ensemble moderne de bibliothèques Jetpack, successeur de Support Library avec versionnage sémantique
  • Plus de 100 modules couvrent l'UI, les données, la navigation, les tâches en arrière-plan, le multimédia et les tests
  • La migration automatique dans Android Studio remplace les importations et dépendances en quelques clics
  • Les extensions Kotlin -ktx réduisent le code répétitif et s'intègrent avec les coroutines et Flow
  • La rétrocompatibilité avec Android 4.0+ couvre 99 % des appareils actifs
  • Jetpack unit AndroidX avec des recommandations architecturales — ViewModel, Room, Navigation, WorkManager
  • Utilisez AndroidX dans tous les nouveaux projets — c'est la norme de l'industrie depuis 2019

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi