<uses-sdk>

Google Play utilise l'<uses-sdk> déclarés dans le fichier manifeste de votre application pour la filtrer sur les appareils qui ne répondent pas aux exigences de version de sa plate-forme. Avant de définir ces attributs, assurez-vous de bien comprendre les filtres Google Play.

syntaxe :
<uses-sdk android:minSdkVersion="integer"
          android:targetSdkVersion="integer"
          android:maxSdkVersion="integer" />
Contenu dans :
<manifest>
Description :

Permet d'exprimer la compatibilité d'une application avec une ou plusieurs versions de la plate-forme Android au moyen d'un nombre entier de niveau d'API. Le niveau d'API exprimé par une application est comparé au Niveau d'API d'un système Android donné, qui peut varier selon les appareils Android.

Malgré son nom, cet élément est utilisé pour spécifier le niveau d'API, et non Le numéro de version du software development kit (SDK, kit de développement logiciel) ou de la plate-forme Android. Le niveau d'API est toujours un entier. Vous ne pouvez pas déduire le niveau d'API le numéro de version d'Android qui lui est associé. Par exemple, il est différent de version majeure ou la somme des versions majeure et mineure.

Lisez également le document sur la gestion des versions de vos applications.

Attributs :
android:minSdkVersion
Entier désignant le niveau d'API minimal requis pour que l'application s'exécute. Le système Android empêche l'utilisateur d'installer l'application si le niveau d'API du système est inférieur à la valeur spécifiée dans cet attribut. Déclarez toujours cet attribut.

Attention:Si vous ne déclarez pas cette , le système prend la valeur par défaut "1", ce qui indique que votre est compatible avec toutes les versions d'Android. Si n'est pas, et vous n'avez pas déclaré le bon minSdkVersion, alors, lorsqu'elle est installée sur un système avec un niveau d'API incompatible, l'application plante pendant l'exécution lors d'une tentative d'accès aux API non disponibles. Pour pour cette raison, veillez à déclarer le niveau d'API approprié minSdkVersion.

android:targetSdkVersion
Entier désignant le niveau d'API ciblé par l'application. Si ce champ n'est pas défini, la valeur par défaut est égale à celle fournie pour minSdkVersion.

Cet attribut informe le système que vous avez effectué le test par rapport à la version cible. La valeur système n'active aucun comportement de compatibilité pour maintenir la compatibilité ascendante de votre appli par la version cible. L'application peut toujours s'exécuter dans des versions antérieures (à minSdkVersion).

Comme Android évolue à chaque nouvelle version, certains comportements et même certaines apparences peuvent changer. Toutefois, si le niveau d'API de la plate-forme est supérieur à la version déclarée par le targetSdkVersion de votre application, le système peut activer les comportements de compatibilité afin que votre application continue de fonctionner comme prévu. Vous pouvez désactiver ces comportements de compatibilité en spécifiant la targetSdkVersion en fonction du niveau d'API de la plate-forme sur laquelle elle est en cours d'exécution.

Par exemple, si vous définissez cette valeur sur "11", ou supérieur permet au système d'appliquer le thème par défaut Holo à votre application lorsqu'elle est exécutée sous Android 3.0 ou plus élevée et désactive également l'écran mode de compatibilité lors de l'exécution sur des écrans plus grands, car la prise en charge implicite du niveau d'API 11 est compatible avec les grands écrans.

Le système peut activer de nombreux comportements de compatibilité en fonction de la valeur que vous définissez pour cet attribut. Plusieurs de ces comportements sont décrits par les versions de plate-forme correspondantes dans la documentation de référence Build.VERSION_CODES.

Pour conserver votre application avec chaque version d'Android, augmentez la valeur de cet attribut pour qu'il corresponde au niveau d'API le plus récent, puis testez minutieusement votre application sur la version de la plate-forme correspondante.

Introduit au niveau d'API 4

android:maxSdkVersion
Entier désignant le niveau d'API maximal sur lequel l'application conçus pour fonctionner.

Sous Android 1.5, 1.6, 2.0 et 2.0.1, le système vérifie la valeur de cet attribut lors de l'installation d'une application et lors de la nouvelle validation de l'application après une mise à jour du système. Dans les deux cas, si L'attribut maxSdkVersion est inférieur au niveau d'API utilisé par le système lui-même, alors le système ne permet pas à l’application de s’installer. En cas de nouvelle validation après une mise à jour du système, votre application est supprimée de l'appareil.

Pour illustrer l'impact de cet attribut sur votre application après une mise à jour du système, prenons l'exemple suivant :

Une application qui déclare maxSdkVersion="5" dans son fichier manifeste est publiée sur Google Play. Utilisateur dont l'appareil est équipé d'Android 1.6 (niveau d'API 4) télécharge et installe l'application. Après quelques semaines, l’utilisateur reçoit une mise à jour Over The Air du système vers Android 2.0 (niveau d'API 5). Une fois la mise à jour installée, le système vérifie l'attribut maxSdkVersion de l'application et valide cette dernière à nouveau.

L'application fonctionne normalement. Cependant, quelque temps plus tard, l'appareil reçoit une autre mise à jour du système, cette fois vers Android 2.0.1 (niveau d'API 6). Après le mise à jour, le système ne peut plus valider à nouveau l'application, car votre propre niveau d'API (6) est désormais supérieur au maximum accepté par l'application (5). Le système empêche l'affichage de l'application pour l'utilisateur en la supprimant de l'appareil.

Avertissement:Nous vous déconseillons de déclarer cette . Tout d'abord, il n'est pas nécessaire de définir l'attribut pour bloquer déploiement de votre application sur les nouvelles versions de la plate-forme Android dès qu'elles sont libérés. Par définition, les nouvelles versions de la plate-forme sont entièrement compatibles avec les versions antérieures. Votre application fonctionne correctement avec les nouvelles versions, à condition qu'elle n'utilise que des API standards et qu'elle respecte les bonnes pratiques de développement. Ensuite, dans certains cas, la déclaration de l'attribut la suppression de votre application appareils après qu'un système vers un niveau d'API supérieur. La plupart des appareils sur lesquels votre application est susceptible d’être installé reçoivent des mises à jour système périodiques par le biais de la plateforme Over The Air, tenez compte de leur impact sur votre application avant de définir .

Introduit au niveau d'API 4

Certaines versions d'Android (au-delà d'Android 2.0.1) vérifier ou appliquer l'attribut maxSdkVersion pendant l'installation ou la revalidation. Google Play continue d'utiliser l'attribut en tant que filtre, en revanche, lorsque vous présentez aux utilisateurs des applications télécharger.
Première apparition :
Niveau d'API 1

Qu'est-ce que le niveau d'API ?

Le niveau d'API est un nombre entier qui identifie de manière unique l'API de framework proposée par une version de la plate-forme Android.

La plate-forme Android fournit une API de framework que les applications peuvent utiliser pour interagir avec le système Android sous-jacent. L'API de framework se compose des éléments suivants :

  • Un ensemble principal de packages et de classes
  • Un ensemble d'éléments et d'attributs XML pour la déclaration d'un fichier manifeste
  • Un ensemble d'éléments et d'attributs XML permettant de déclarer des ressources et d'y accéder
  • Un ensemble d'intents
  • Un ensemble d'autorisations que les applications peuvent demander, ainsi que les applications d'autorisations incluses dans le système

Chaque version successive de la plate-forme Android peut inclure des mises à jour de l'API de framework d'application Android fournie.

Les mises à jour de l'API de framework sont conçues pour que la nouvelle API reste compatible avec les versions antérieures. Autrement dit, la plupart des modifications de l'API s'ajoutent les unes aux autres et introduisent de nouvelles fonctionnalités ou des fonctionnalités de remplacement. Dans le cadre de l'API sont mises à niveau, les anciennes pièces remplacées sont obsolètes, mais ne sont pas supprimées. que les applications existantes peuvent toujours les utiliser.

Dans un très petit nombre de cas, de l'API sont modifiés ou supprimés, bien que ces modifications soient généralement nécessaires uniquement pour assurer la robustesse des API et la sécurité des applications ou du système. Toutes les autres parties d'API issues des révisions précédentes sont transférées sans modification.

L'API de framework fournie par une plate-forme Android est spécifiée à l'aide d'un un identifiant sous forme d'entier appelé niveau d'API. Chaque version de la plate-forme Android est compatible un seul niveau d'API, bien que la prise en charge soit implicite pour tous les niveaux d'API antérieurs (jusqu'au niveau d'API 1). La version initiale de la plate-forme Android proposait Le niveau d'API 1 et les versions ultérieures ont augmenté le niveau d'API.

Le tableau suivant indique le niveau d'API compatible avec chaque version du plate-forme Android. Pour obtenir des informations sur le nombre relatif d'appareils exécutent chaque version, consultez le tableau de bord de distribution.

Version de la plate-formeNiveau d'APIVERSION_CODENotes
Android 15 35 VANILLA_ICE_CREAM Points forts de la plate-forme
Android 14 34 UPSIDE_DOWN_CAKE Points forts de la plate-forme
Android 13 33 TIRAMISU Points forts de la plate-forme
Android 12 32 S_V2 Points forts de la plate-forme
31 S Points forts de la plate-forme
Android 11 30 R Points forts de la plate-forme
Android 10 29 Q Points forts de la plate-forme
Android 9 28 P Points forts de la plate-forme
Android 8.1 27 O_MR1 Points forts de la plate-forme
Android 8.0 26 O Points forts de la plate-forme
Android 7.1.1
Android 7.1
25 N_MR1 Points forts de la plate-forme
Android 7.0 24 N Points forts de la plate-forme
Android 6.0 23 M Points forts de la plate-forme
Android 5.1 22 LOLLIPOP_MR1 Points forts de la plate-forme
Android 5.0 21 LOLLIPOP
Android 4.4W 20 KITKAT_WATCH KitKat pour accessoires connectés uniquement
Android 4.4 19 KITKAT Points forts de la plate-forme
Android 4.3 18 JELLY_BEAN_MR2 Points forts de la plate-forme
Android 4.2, 4.2.2 17 JELLY_BEAN_MR1 Points forts de la plate-forme
Android 4.1, 4.1.1 16 JELLY_BEAN Points forts de la plate-forme
Android 4.0.3, 4.0.4 15 ICE_CREAM_SANDWICH_MR1 Points forts de la plate-forme
Android 4.0, 4.0.1, 4.0.2 14 ICE_CREAM_SANDWICH
Android 3.2 13 HONEYCOMB_MR2
Android 3.1.x 12 HONEYCOMB_MR1 Points forts de la plate-forme
Android 3.0.x 11 HONEYCOMB Points forts de la plate-forme
Android 2.3.4
Android 2.3.3
10 GINGERBREAD_MR1 Points forts de la plate-forme
Android 2.3.2
Android 2.3.1
Android 2.3
9 GINGERBREAD
Android 2.2.x 8 FROYO Points forts de la plate-forme
Android 2.1.x 7 ECLAIR_MR1 Points forts de la plate-forme
Android 2.0.1 6 ECLAIR_0_1
Android 2.0 5 ECLAIR
Android 1.6 4 DONUT Points forts de la plate-forme
Android 1.5 3 CUPCAKE Points forts de la plate-forme
Android 1.1 2 BASE_1_1
Android 1.0 1 BASE

Utilisations du niveau d'API sous Android

L'identifiant de niveau d'API joue un rôle clé pour garantir pour les utilisateurs et les développeurs d'applications:

  • Il permet à la plate-forme Android de décrire la révision maximale de l'API de framework qu'il prend en charge.
  • Il permet aux applications de décrire la révision de l'API de framework qu'elles exige.
  • Il permet au système de négocier l'installation d'applications sur le appareil afin que les applications incompatibles avec la version ne soient pas installées.

Chaque version de la plate-forme Android stocke son identifiant de niveau d'API en interne, dans le système Android lui-même.

Les applications peuvent utiliser un élément manifeste fourni par le framework API (<uses-sdk>) pour décrire le niveau d'API minimal et maximal à partir desquels elles peuvent s'exécuter, ainsi que le niveau d'API préféré pour lesquels ils sont conçus. L'élément comporte trois attributs clés :

  • android:minSdkVersion: niveau d'API minimal sur lequel l'application peut s'exécuter. La valeur par défaut est "1".
  • android:targetSdkVersion: niveau d'API sur lequel l'application est conçue. Dans certains cas, cela permet utilisent des éléments du fichier manifeste ou des comportements définis dans le au niveau de l'API, au lieu d'être limité à ceux qui sont définis pour le niveau d'API minimal.
  • android:maxSdkVersion: niveau d'API maximal sur lequel l'application peut s'exécuter. Important:Consultez les informations sur cet attribut sur cette page avant de l'utiliser.

Par exemple, pour spécifier le niveau d'API système minimal qu'une application requiert pour s'exécuter, l'application inclut dans son fichier manifeste Élément <uses-sdk> avec android:minSdkVersion . La valeur de android:minSdkVersion est l'entier correspondant au niveau d'API de la première version de la plate-forme Android pour l'exécution de l'application.

Lorsque l'utilisateur tente d'installer une application ou lorsqu'il revalide application après une mise à jour du système, le système Android vérifie d'abord les attributs <uses-sdk> dans le fichier manifeste de l'application et compare les valeurs à son propre niveau d'API interne. Le système permet au l'installation ne peut commencer que si les conditions suivantes sont remplies:

  • Si un attribut android:minSdkVersion est déclaré, sa valeur est inférieur ou égal à l'entier du niveau d'API du système ; S'il n'est pas déclaré, le système suppose que l'application nécessite le niveau d'API 1.
  • Si un attribut android:maxSdkVersion est déclaré, sa valeur est supérieur ou égal à l'entier du niveau d'API du système. S'il n'est pas déclaré, le système suppose que l'application n'a pas de niveau d'API maximal. Consultez les description de cet attribut pour en savoir plus comment le système le gère.

Lorsqu'il est déclaré dans le fichier manifeste d'une application, un élément <uses-sdk> peut se présenter comme suit :

<manifest>
  <uses-sdk android:minSdkVersion="5" />
  ...
</manifest>

La raison principale pour laquelle une application déclare un niveau d'API dans android:minSdkVersion indique au système Android qu'il utilise des API introduites au niveau d'API spécifié.

Si le l'application s'installe d'une manière ou d'une autre sur une plate-forme avec un niveau d'API inférieur, il plante au moment de l'exécution lorsqu'il tente d'accéder à des API qui n'existent pas. Le système empêche ce résultat en empêchant l'application installer si le niveau d'API le plus bas requis est supérieur à celui de la plate-forme sur l'appareil cible.

Considérations liées au développement

Les sections suivantes fournissent des informations sur le niveau d'API dont vous avez besoin pour lorsque vous développez votre application.

Compatibilité ascendante des applications

Les applications Android sont généralement compatibles avec les nouvelles versions de la plate-forme Android.

Presque toutes les modifications apportées à l'API du framework s'ajoutent les unes aux autres. application développée à l'aide d'une version donnée de l'API, comme spécifié par ses niveau d'API, est rétrocompatible avec les versions ultérieures de la plate-forme Android et avec des niveaux d'API plus élevés. L'application peut s'exécuter sur toutes les versions ultérieures de la plate-forme Android, sauf dans les cas isolés où l'application utilise un de l'API qui est ensuite supprimée pour une raison quelconque.

La compatibilité ascendante est importante, car de nombreux appareils Android reçoivent des mises à jour système OTA (Over The Air). Il est possible que l'utilisateur installe votre application et l'utiliser avec succès, puis reçoivent ultérieurement une mise à jour OTA vers de la plate-forme Android. Une fois la mise à jour installée, votre application s'exécute dans une nouvelle version de l'environnement, mais dans laquelle l'API est toujours disponible et les fonctionnalités système dont dépend votre application.

Les modifications apportées sous l'API, telles que celles de l'API peut affecter votre application lorsqu'elle est exécutée dans la nouvelle environnement. Il est important pour vous, car l'application développeur, pour comprendre l'apparence et le comportement de l'application dans chaque système environnement.

Pour vous aider à tester votre application sur différentes versions de la plate-forme Android, le SDK Android inclut plusieurs plates-formes téléchargeables. Chaque plate-forme inclut une image système compatible que vous pouvez exécuter dans un AVD pour pour tester votre application.

Rétrocompatibilité des applications

Les applications Android ne sont pas nécessairement rétrocompatibles avec les versions de la plate-forme Android antérieure à la version sur laquelle elles ont été compilées.

Chaque nouvelle version de la plate-forme Android peut inclure de nouvelles API de framework, telles que celles permettant aux applications d'accéder aux nouvelles fonctionnalités de la plate-forme ou celles qui remplacent des parties d'API existantes. Les nouvelles API sont accessibles aux applications lorsqu'elles sont exécutées sur la nouvelle plate-forme ainsi que sur des versions ultérieures la plate-forme, comme spécifié par le niveau d'API. Mais comme les versions antérieures de la plate-forme n'incluent pas les nouvelles API, les applications qui les utilisent ne peuvent pas exécutés sur ces plates-formes.

Même s'il est peu probable qu'un appareil Android repasse à une version une version précédente de la plate-forme, il est important de comprendre de nombreux appareils sur le terrain qui exécutent des versions antérieures du Google Cloud. Même parmi les appareils qui reçoivent les mises à jour OTA, certains peuvent être à la traîne et ne pas recevoir de mise à jour pendant un certain temps.

Sélectionner une version de la plate-forme et un niveau d'API

Lorsque vous développez votre application, vous choisissez la version de la plate-forme par rapport à laquelle vous compilez l'application ; Dans compilez votre application à l'aide de la méthode de la plate-forme compatible avec votre application.

Vous pouvez déterminer la version de plate-forme la plus basse possible en compilant l'application sur des cibles de compilation successives de plus en plus basses. Après avoir déterminé le version la plus basse, créez un AVD à l'aide de la plate-forme correspondante et le niveau d'API, et tester entièrement votre application. Veillez à déclarer un android:minSdkVersion dans le fichier manifeste de l'application et Définissez sa valeur sur le niveau d'API de la version de la plate-forme.

Déclarer un niveau d'API minimal

Si vous créez une application qui utilise des API ou des fonctionnalités système introduites dans la dernière version de la plate-forme, définissez L'attribut android:minSdkVersion au niveau d'API du dernier de la plate-forme. Ainsi, les utilisateurs ne pourront installer si leurs appareils exécutent une version compatible d'Android Google Cloud. Cela permet également de garantir que votre application peut fonctionner correctement sur leurs appareils.

Si votre application utilise des API introduites dans la dernière version de la plate-forme, mais ne déclare pas d'attribut android:minSdkVersion, alors il fonctionne correctement sur les appareils exécutant la dernière version de la plateforme, mais pas sur les appareils exécutant des versions antérieures de la plate-forme. Dans le second cas, l'application plante au moment de l'exécution lorsqu'elle tente d'utiliser des API qui n'utilisent pas existent dans les versions précédentes.

Effectuer des tests par rapport à des niveaux d'API plus élevés

Après avoir compilé votre application, veillez à la tester sur le plate-forme spécifiée dans le fichier android:minSdkVersion de l'application . Pour ce faire, créez un AVD ayant la version de plate-forme requise par votre application. De plus, pour vérifier la compatibilité ascendante, exécutez et tester l'application sur toutes les plates-formes qui utilisent un niveau d'API supérieur utilisés par votre application.

Le SDK Android inclut plusieurs versions de plate-forme que vous pouvez utiliser, y compris la dernière version, et fournit un outil de mise à jour qui vous permet de télécharger d'autres versions de la plate-forme, si nécessaire.

Pour accéder au programme de mise à jour, utilisez l'outil de ligne de commande android, situé dans le répertoire <sdk>/tools. Vous pouvez lancer l'outil de mise à jour du SDK en exécutant android sdk. Vous pouvez double-cliquez également sur le fichier android.bat (Windows) ou android (OS X/Linux).

Pour exécuter votre application sur différentes versions de plate-forme dans l'émulateur, créez un AVD pour chaque version de plate-forme que vous souhaitez tester. Pour plus AVD, consultez Créer et gérer des appareils virtuels. Si vous utilisez un appareil physique pour effectuer des tests, assurez-vous de connaître le niveau d'API de la plate-forme Android qu'il exécute. Consultez le tableau de ce document pour une liste des versions de la plate-forme et de leurs niveaux d'API ;

Filtrer la documentation de référence par niveau d'API

Les pages de documentation de référence de la plate-forme Android proposent "Niveau d'API" en haut à gauche de chaque page. Vous pouvez utiliser pour n'afficher la documentation que pour les parties de l'API qui sont accessible à votre application, en fonction du niveau d'API spécifié l'attribut android:minSdkVersion de son fichier manifeste.

Pour utiliser le filtrage, sélectionnez l'API spécifié par votre application dans le menu. Les API présentées dans un prochain module Les niveaux d'API sont grisés et leur contenu est masqué, car ils ne sont pas accessibles à votre application.

Le filtrage par niveau d'API dans la documentation ne fournit pas de vue ce qui est nouveau ou introduit dans chaque niveau d'API. Elle permet pour afficher l'intégralité de l'API associée à un niveau d'API donné, tout en excluant l'API introduits dans les niveaux d'API ultérieurs.

Pour revenir à la documentation complète, Sélectionnez REL en haut du menu de niveau d'API. Par défaut, le filtrage au niveau de l'API désactivée. Vous pouvez ainsi afficher l'intégralité de l'API du framework, quel que soit son niveau d'API.

la documentation de référence des éléments individuels de l'API ; spécifie le niveau d'API auquel chaque élément est introduit. Niveau d'API pour les packages et les classes est défini sur "Ajouté au niveau de l'API" au en haut à droite de la zone de contenu de chaque page de documentation. Niveau d'API pour les membres du cours est spécifié dans leurs en-têtes de description détaillée, dans la marge de droite.