Android Jetpack : suite de bibliothèques Kotlin synchronisée avec la branche de développement AOSP
Environnement de développement pour les bibliothèques d'extensions Android Jetpack sous l'espace de noms Androidx. Synchronisé avec la branche de développement principale d'Android Jetpack sur AOSP.
En bref
- De quoi s’agit-il ?
- Le dépôt androidx héberge l'environnement de développement des bibliothèques Jetpack, organisées sous l'espace de noms androidx et synchronisées avec la branche principale d'AOSP pour une mise à jour fréquente hors des cycles de versioning de la plateforme.
- À qui s’adresse-t-il ?
- Le dépôt androidx s'adresse aux contributeurs Google et à la communauté qui souhaitent corriger des bugs ou ajouter des tests dans les bibliothèques Jetpack officielles. Les contributions sont actuellement limitées à une liste de projets spécifiés (Activity, AppCompat, Compose, Room, etc.); les nouvelles modules ne sont pas acceptées.
- Puis-je l’utiliser commercialement ?
- Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 1 jour.
- En quel langage est-il écrit ?
- Principalement Kotlin, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Jetpack : suite de bibliothèques découplées de la plateforme Android
Jetpack est un ensemble de bibliothèques Kotlin, d'outils et de guidance pour simplifier le développement Android. Les composants Jetpack aident les développeurs à respecter les best practices, réduisent le boilerplate et encapsulent les tâches complexes. Le point clé : Jetpack est découplé des APIs de plateforme et mis à jour plus fréquemment que le cycle de versioning de la plateforme Android elle-même. Cela signifie que vous pouvez utiliser une version récente de Room, Compose ou Navigation indépendamment de l'API level de votre app. Les binaires AARs et JARs sont distribués via Google Maven et Maven Central. Le dépôt GitHub est un miroir expérimental; le développement primaire se fait sur AOSP gerrit.
Structure du dépôt et liste des projets acceptés
Le dépôt androidx organise les bibliothèques en répertoires de projet : activity, appcompat, biometric, collection, compose, core, datastore, fragment, lifecycle, navigation, paging, room, work et bien d'autres. Chaque répertoire contient les sources Kotlin, les tests et la configuration Gradle pour cette bibliothèque spécifique. Le README liste explicitement les projets pour lesquels les contributions via GitHub sont acceptées actuellement (Activity, AppCompat, Biometric, etc.). Les contributions de nouvelles modules ne sont pas acceptées - la stratégie de Jetpack est d'évoluer les modules existants plutôt que d'en créer de nouveaux ad-hoc. Cette limite réduit la fragmentation et force les contributeurs à étendre des modules existants au lieu de fissionner.
Types de contributions acceptées et processus de révision
Les contributions acceptées comprennent les corrections de bugs (avec un rapport correspondant au Android Issue Tracker), les corrections d'orthographe, la mise à jour de documentation et l'ajout de tests pour les domaines insuffisamment testés. Chaque correction de bug doit être accompagnée de tests. Les nouvelles fonctionnalités pour les bibliothèques existantes requièrent une approbation au préalable d'un membre de l'équipe AndroidX via un bug approuvé. Le processus de révision suit une étiquette de code définie dans code-review.md. Les contributeurs doivent signer l'accord de contributeur Google et générer une clé HTTPS via android.googlesource.com avant d'uploader des changements.
Infrastructure de développement : AOSP gerrit et dépendances hermétiques
Le flux de développement utilise AOSP gerrit pour la révision et l'upload du code. Les contributeurs exécutent repo upload, puis ouvrent r.android.com pour ajouter des reviewers et suivre le statut du CL (changelist). Le système CI à ci.android.com construit les bibliothèques en développement sur la branche aosp-androidx-main et expose les AARs/JARs générés pour tests manuels avant la fusion. La particularité : androidx gère ses dépendances Gradle de manière hermétique. Tous les binaires Gradle sont stockés en local dans prebuilts/androidx/internal et prebuilts/androidx/external, copiés depuis Maven Central et google(). Cela garantit une reproductibilité de build mais requiert une étape de synchronisation quand une nouvelle dépendance externe est utilisée via l'outil importMaven.
Onboarding et prérequis d'accès
Un développeur qui souhaite contribuer doit d'abord lire les docs/onboarding.md pour comprendre le flux de travail. Les prérequis incluent un compte AOSP configuré, la génération d'une clé HTTPS, et l'signature de l'accord de contributeur Google. L'absence de compte ou d'accord configure en 15 minutes environ, mais c'est une barrière supplémentaire par rapport aux dépôts GitHub standard qui acceptent les PRs sans authentification formelle. Le processus de révision privilégie les mainteneurs Google qui connaissent déjà l'historique des fichiers (obtenable via git log) et les OWNERS files présents dans chaque répertoire de projet.
Versioning et synchronisation AOSP
Le dépôt est synchronisé avec la branche de développement principale d'AOSP. Cela signifie que les changements approuvés sur gerrit sont reflétés ici, mais avec un léger décalage temporel. Le README mentionne que les binaires de travail en cours (potentiellement instables) sont disponibles depuis le système CI pour expérimentation. La branche par défaut est androidx-main, non master. Cette convention de nommage reflète l'héritage AOSP où 'main' est une branche de développement et 'androidx-main' isole le développement Jetpack. Les développeurs qui clonent doivent être conscients qu'ils reçoivent un snapshot de développement, pas une version libérée - les AARs des versions officielles sont sur Google Maven.
Limitations et décisions architecturales
Le dépôt n'accepte pas de nouvelles modules, restreignant ainsi sa portée. Les développeurs qui veulent créer une nouvelle bibliothèque Jetpack-style doivent d'abord proposer le concept aux équipes Google ou accepter que le projet demeure une bibliothèque tierce. Cette restriction accélère la convergence autour d'une suite cohérente de modules plutôt que de fragmenter Jetpack en centaines de variantes. Les contributions via GitHub sont expérimentales, la plupart du développement sérieux utilisant toujours gerrit directement. Les tests unitaires sont obligatoires pour toute correction, s'appliquant sur des projets Android qui gèrent une complexité non triviale (Room avec ses migrations, Compose avec ses layouts, Navigation avec son graphe). L'absence de guides pour débuter les contributions rend le repositoryinaccessible aux contributeurs occasionnels.
Conclusion éditoriale
Le dépôt androidx s'adresse aux contributeurs Google et à la communauté qui souhaitent corriger des bugs ou ajouter des tests dans les bibliothèques Jetpack officielles. Les contributions sont actuellement limitées à une liste de projets spécifiés (Activity, AppCompat, Compose, Room, etc.); les nouvelles modules ne sont pas acceptées. Avant de proposer un changement, signez l'accord de contributeur Google et accédez aux outils AOSP gerrit. Le système CI/CD à ci.android.com expose les binaires de travail en cours pour tests. Les contributeurs occasionnels trouvent le processus fastidieux; le dépôt cible principalement les équipes Google et les contributeurs réguliers engagés.
Notes de la communauté