Bibliothèque Support

Remarque:Avec la sortie d'Android 9.0 (niveau d'API 28), une nouvelle version de la bibliothèque Support appelée AndroidX fait partie de Jetpack. La bibliothèque AndroidX contient la bibliothèque Support existante et inclut également les derniers composants Jetpack.

Vous pouvez continuer à utiliser la bibliothèque Support. Les artefacts historiques (ceux de la version 27 ou antérieure, et empaquetés sous la forme android.support.*) resteront disponibles sur Google Maven. Toutefois, tout développement de nouvelle bibliothèque aura lieu dans la bibliothèque AndroidX.

Nous vous recommandons d'utiliser les bibliothèques AndroidX dans tous les nouveaux projets. Vous devez également envisager de migrer des projets existants vers AndroidX.

Lorsque vous développez des applications compatibles avec plusieurs versions d'API, vous pouvez avoir besoin d'une méthode standard pour fournir des fonctionnalités plus récentes sur les versions antérieures d'Android ou revenir normalement à des fonctionnalités équivalentes. Plutôt que de compiler du code pour gérer les versions antérieures de la plate-forme, vous pouvez exploiter ces bibliothèques pour fournir cette couche de compatibilité. En outre, les bibliothèques Support offrent des classes et des fonctionnalités supplémentaires qui ne sont pas disponibles dans l'API Framework standard. Elles facilitent le développement et la prise en charge d'un plus grand nombre d'appareils.

À l'origine, une seule bibliothèque binaire pour les applications, Android Support Library a évolué pour se transformer en une suite de bibliothèques pour le développement d'applications. Bon nombre de ces bibliothèques sont désormais fortement recommandées, si ce n'est pas essentiel, dans le développement d'applications.

Ce document présente la bibliothèque Support pour vous aider à comprendre ses composants et à l'utiliser efficacement dans votre application.

Attention:À partir de la version 26.0.0 de la bibliothèque Support (juillet 2017), le niveau d'API minimal accepté dans la plupart des bibliothèques Support est passé à Android 4.0 (niveau d'API 14) pour la plupart des packages de bibliothèques. Pour plus d'informations, consultez la section Prise en charge des versions et noms de packages sur cette page.

Utilisations des bibliothèques Support

Les bibliothèques Support ont plusieurs cas d'utilisation. Les classes de rétrocompatibilité des versions antérieures de la plate-forme ne sont que l'une d'entre elles. Voici une liste plus complète des façons d'utiliser les bibliothèques Support dans votre application:

  • Rétrocompatibilité pour les API les plus récentes : un grand nombre de bibliothèques Support assurent la rétrocompatibilité pour les classes et méthodes de framework plus récentes. Par exemple, la classe de support Fragment prend en charge les fragments sur les appareils exécutant des versions antérieures à Android 3.0 (niveau d'API 11).
  • Classes de commodité et d'assistance : les bibliothèques Support fournissent un certain nombre de classes d'assistance, en particulier pour le développement d'interfaces utilisateur. Par exemple, la classe RecyclerView fournit un widget d'interface utilisateur permettant d'afficher et de gérer de très longues listes, utilisable sur les versions d'Android à partir du niveau d'API 7.
  • Débogage et utilitaires : de nombreuses fonctionnalités s'avèrent utiles au-delà du code que vous intégrez à votre application, par exemple la bibliothèque support-annotations pour améliorer les vérifications lint du code sur les entrées de méthode et la compatibilité avec Multidex pour la configuration et la distribution d'applications avec plus de 65 536 méthodes.

Utiliser les API Support et les API Framework

Les bibliothèques Support fournissent des classes et des méthodes qui ressemblent étroitement aux API du framework Android. En découvrant ce point, vous vous demandez peut-être si vous devez utiliser la version du framework de l'API ou une version équivalente de la bibliothèque Support. Voici les consignes d'utilisation des classes de la bibliothèque Support à la place des API Framework:

  • Compatibilité pour une fonctionnalité spécifique : si vous souhaitez prendre en charge une fonctionnalité récente de la plate-forme sur des appareils qui exécutent des versions antérieures, utilisez les classes et méthodes équivalentes de la bibliothèque Support.
  • Compatibilité avec les fonctionnalités de la bibliothèque Support : les classes de bibliothèque Support plus sophistiquées peuvent dépendre d'une ou de plusieurs classes supplémentaires de la bibliothèque Support. Vous devez donc utiliser des classes de la bibliothèque Support pour ces dépendances. Par exemple, la classe d'assistance ViewPager doit être utilisée avec les classes d'assistance FragmentPagerAdapter ou FragmentStatePagerAdapter.
  • Compatibilité générale avec les appareils : si vous n'avez pas l'intention d'utiliser une fonctionnalité spécifique de la plate-forme avec votre application de manière rétrocompatible, il est toujours judicieux d'utiliser les classes de la bibliothèque Support dans votre application. Par exemple, vous pouvez utiliser ActivityCompat à la place de la classe Activity du framework afin de profiter des nouvelles fonctionnalités par la suite, telles que l'intégration du nouveau modèle de niveau d'autorisations introduit dans Android 6.0.

Les classes de la bibliothèque Support qui fournissent une implémentation compatible des classes d'API de la plate-forme peuvent ne pas être en mesure de fournir l'ensemble des fonctionnalités disponibles dans la dernière version en raison des limites de la version de la plate-forme de l'appareil hôte. Dans ce cas, les classes de la bibliothèque Support sont conçues pour effectuer une dégradation élégante, et peuvent ne pas fournir toutes les fonctionnalités ou données de l'API actuelle de la plate-forme. C'est pourquoi nous vous conseillons de consulter la documentation de référence sur les classes et les méthodes de bibliothèque que vous utilisez, et d'effectuer des tests approfondis sur les appareils exécutant la première version de la plate-forme compatible avec votre application.

Remarque:Les bibliothèques Support ne fournissent pas de classes et de méthodes équivalentes pour chaque API de framework. Dans certains cas, vous devrez peut-être encapsuler un appel de méthode de framework avec une vérification explicite de la version du SDK et fournir un autre code pour gérer les méthodes non disponibles sur un appareil. Pour en savoir plus sur l'utilisation des vérifications de version dans votre code, consultez la page Compatibilité avec différentes versions de plate-forme.

Prise en charge des versions et noms des packages

Certains packages de la bibliothèque Support ont des noms de packages pour indiquer le niveau minimal de l'API qu'ils étaient initialement compatibles, à l'aide d'une notation v#, comme le package support-v4. À partir de la version 26.0.0 de la bibliothèque Support (publiée en juillet 2017), le niveau d'API minimal compatible est passé à Android 4.0 (niveau d'API 14) pour tous les packages de la bibliothèque Support. Pour cette raison, lorsque vous utilisez une version récente de la bibliothèque Support, ne partez pas du principe que la notation du package v# indique un niveau minimal de compatibilité avec l'API. Ce changement apporté aux versions récentes signifie également que les packages de bibliothèque avec les versions 4 et 7 sont essentiellement équivalents en termes d'API minimale compatibles. Par exemple, les packages support-v4 et support-v7 acceptent tous deux un niveau d'API minimal de 14 pour les versions de la bibliothèque Support à partir de la version 26.0.0.

Versions des versions de la bibliothèque Support

La version de la bibliothèque Support, telle que 24.2.0 ou 25.0.1, est différente du niveau d'API minimal accepté par n'importe quelle bibliothèque de cette version. Le numéro de version indique la version de l'API de la plate-forme avec laquelle elle a été compilée. Par conséquent, les API les plus récentes peuvent être incluses dans cette version des bibliothèques.

Plus précisément, la première section du numéro de version (par exemple, le numéro 24 de la version 24.2.0) correspond généralement à la version de l'API de la plate-forme disponible au moment de sa publication. Le niveau de version de la bibliothèque Support indique qu'elle intègre certaines fonctionnalités de ce niveau d'API, mais vous ne devez pas supposer qu'elle est compatible avec toutes les fonctionnalités publiées dans la nouvelle version de l'API de la plate-forme.

Dépendances des bibliothèques

La plupart des bibliothèques de la suite Android Support Library dépendent d'une ou de plusieurs bibliothèques. Par exemple, presque toutes les bibliothèques Support dépendent du package support-compat. En général, vous n'avez pas à vous soucier des dépendances des bibliothèques Support, car l'outil de compilation Gradle gère les dépendances de bibliothèque à votre place en incluant automatiquement les bibliothèques dépendantes.

Si vous souhaitez voir quelles bibliothèques et dépendances de bibliothèque sont incluses dans votre application, exécutez la commande suivante à la racine de votre projet de développement d'application pour obtenir un rapport des dépendances de ce projet, y compris les bibliothèques Android Support et d'autres bibliothèques:

gradle -q dependencies your-app-project:dependencies

Pour en savoir plus sur l'ajout de bibliothèques Support à votre projet de développement à l'aide de Gradle, consultez Configuration de la bibliothèque Support. Pour en savoir plus sur l'utilisation de Gradle, consultez Configurer votre build.

Notez que toutes les bibliothèques Android Support dépendent également d'un niveau de base de la plate-forme, à savoir Android 4.0 (niveau d'API 14) ou version ultérieure pour les versions récentes.