Android est conçu pour s'exécuter sur de nombreux appareils différents, tels que des téléphones, des tablettes et des téléviseurs. Cette diversité vous donne accès à une immense audience potentielle. Pour que votre application soit performante sur tous ces appareils, elle doit tolérer certaines modifications de fonctionnalités et offrir une interface utilisateur flexible qui s'adapte à différentes configurations d'écran.
Pour faciliter la compatibilité des appareils, Android fournit un framework d'application dynamique dans lequel vous pouvez fournir des ressources d'application spécifiques à la configuration dans des fichiers statiques, telles que différentes mises en page XML pour différentes tailles d'écran. Android charge ensuite les ressources appropriées en fonction de la configuration actuelle de l'appareil. En réfléchissant à la conception de votre application et aux ressources supplémentaires, vous pouvez publier un seul package d'application (APK) qui optimise l'expérience utilisateur sur différents appareils.
Toutefois, si nécessaire, vous pouvez spécifier les fonctionnalités requises pour votre application Contrôlez les types d'appareils autorisés à installer votre application depuis le Google Play Store. Ce document explique comment contrôler quels appareils ont accès à vos applications et comment les préparer pour toucher la bonne audience.
Qu'entend-on par "compatibilité" ? ?
En ce qui concerne le développement Android, il existe deux types de compatibilité : la compatibilité des appareils et la compatibilité des applications.
Étant donné qu'Android est un projet open source, n'importe quel fabricant de matériel peut créer un appareil exécutant le système d'exploitation Android. Mais un appareil est "Compatible avec Android" uniquement s'il peut exécuter correctement les applications écrites pour Environnement d'exécution Android Les détails exacts de l'application Android environnement d'exécution sont définis par Sur Android programme de compatibilité. Chaque appareil doit réussir les tests de la suite de tests de compatibilité (CTS) doivent être considérées comme compatibles.
En tant que développeur d'applications, vous n'avez pas à vous soucier de savoir si un appareil compatibles avec Android, car seuls les appareils compatibles incluent Google Play Store. Par conséquent, si un utilisateur installe votre application depuis le Google Play Store, il utilise un appareil compatible avec Android.
Toutefois, vous devez déterminer si votre application est compatible avec chaque configuration d'appareil potentielle. Étant donné qu'Android s'exécute sur un large éventail de configurations d'appareils, certaines fonctionnalités ne sont pas disponibles sur tous les appareils. Par exemple, certains appareils n'ont pas de boussole. Si la fonctionnalité de base de votre application nécessite une boussole, votre application n'est compatible qu'avec les appareils qui inclure cette fonctionnalité.
Contrôler la disponibilité de votre application sur les appareils
Android est compatible avec diverses fonctionnalités que votre application peut exploiter via les API de la plate-forme. Certaines fonctionnalités sont basées sur du matériel, comme un capteur de boussole, d'autres sur des logiciels, comme les widgets d'application, et d'autres dépendent de la version de la plate-forme. Tous les appareils ne sont pas compatibles avec toutes les fonctionnalités. Vous devrez peut-être contrôler la disponibilité de votre application sur les appareils en fonction des fonctionnalités requises.
Afin d'atteindre la plus grande base d'utilisateurs possible pour votre application, acceptez de configuration d'appareil que possible à l'aide d'un seul APK ou AAB. Dans la plupart des cas, Désactivez les fonctionnalités facultatives lors de l'exécution fournit une application ressources par des alternatives pour différentes configurations, des mises en page pour différentes tailles d’écran. Si nécessaire, vous pouvez limiter la disponibilité de votre application à certains appareils via le Google Play Store en fonction des caractéristiques suivantes :
Fonctionnalités de l'appareil
Pour gérer la disponibilité de votre application en fonction des fonctionnalités de l'appareil, Android définit des ID de fonctionnalité pour toute fonctionnalité matérielle ou logicielle qui n'est pas disponible sur tous les appareils. Par exemple, l'identifiant de caractéristique du capteur de la boussole est
FEATURE_SENSOR_COMPASS
,
et l'ID de fonctionnalité pour les widgets d'application est
FEATURE_APP_WIDGETS
Si nécessaire, vous pouvez empêcher les utilisateurs d'installer votre application lorsque leurs appareils ne proposent pas une fonctionnalité nécessaire en la déclarant à l'aide d'un élément <uses-feature>
dans le fichier manifeste de votre application.
Par exemple, si votre application n'a pas de sens sur un appareil sans boussole vous pouvez déclarer qu'elle est obligatoire tag du fichier manifeste:
<manifest ... > <uses-feature android:name="android.hardware.sensor.compass" android:required="true" /> ... </manifest>
Le Google Play Store compare les fonctionnalités requises par votre application disponibles sur l'appareil de chaque utilisateur pour déterminer si votre appli est compatibles avec chaque appareil. Si l'appareil ne dispose pas de toutes les fonctionnalités requises par votre application, l'utilisateur ne peut pas l'installer.
Toutefois, si la fonctionnalité principale de votre application ne nécessite pas de fonctionnalité de l'appareil, définissez l'attribut required
sur "false"
et recherchez la fonctionnalité de l'appareil au moment de l'exécution.
Si la fonctionnalité de l'application n'est pas disponible sur l'appareil actuel, procédez à une dégradation élégante
la fonctionnalité correspondante de l'application. Par exemple, vous pouvez vérifier si une fonctionnalité est disponible en appelant hasSystemFeature()
comme suit :
if (!packageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) { // This device doesn't have a compass. Turn off the compass feature. disableCompassFeature() }
PackageManager pm = getPackageManager(); if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) { // This device doesn't have a compass. Turn off the compass feature. disableCompassFeature(); }
Pour en savoir plus sur tous les filtres que vous pouvez utiliser pour contrôler la disponibilité de votre application sur le Google Play Store, consultez la documentation sur les filtres sur Google Play.
Version de la plate-forme
Différents appareils peuvent exécuter différentes versions de la plate-forme Android, telles qu'Android 12 ou Android 13. Souvent, chaque version de plate-forme successive ajoute des API non disponibles dans la version précédente. Pour indiquer quel ensemble d'API chaque version de la plate-forme spécifie Niveau d'API : Par exemple, Android 12 correspond au niveau d'API 31 et Android 13 au niveau d'API 33.
Vous devez spécifier les valeurs minSdkVersion
et targetSdkVersion
dans votre fichier build.gradle
:
android { defaultConfig { applicationId = "com.example.myapp" // Defines the minimum API level required to run the app. minSdkVersion(30) // Specifies the API level used to test the app. targetSdkVersion(33) ... } }
android { defaultConfig { applicationId 'com.example.myapp' // Defines the minimum API level required to run the app. minSdkVersion 30 // Specifies the API level used to test the app. targetSdkVersion 33 ... } }
Pour en savoir plus sur le fichier build.gradle
, consultez la section Configurer votre build.
Chaque version successive d'Android assure la compatibilité des applications créées à l'aide des API des versions précédentes de la plate-forme. Ainsi, votre application est compatible avec les futures versions d'Android tout en utilisant les API Android documentées.
<ph type="x-smartling-placeholder">Toutefois, si votre application utilise des API ajoutées dans une version plus récente de la plate-forme,
n'en a pas besoin pour sa fonctionnalité principale, vérifiez le niveau d'API
l'environnement d'exécution et procéder à une dégradation élégante des fonctionnalités correspondantes lorsque le niveau d'API
trop basse. Dans ce cas, définissez minSdkVersion
sur la valeur la plus basse.
possible pour la fonctionnalité principale de votre application, puis comparez les performances
version,
SDK_INT
,
à la constante Codename dans
Build.VERSION_CODES
correspondant au niveau d'API que vous souhaitez vérifier, comme illustré ci-dessous
Exemple:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { // Running on something older than API level 11, so disable // the drag and drop features that use ClipboardManager APIs. disableDragAndDrop() }
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { // Running on something older than API level 11, so disable // the drag and drop features that use ClipboardManager APIs. disableDragAndDrop(); }
Configuration de l'écran
Android s'exécute sur des appareils de différentes tailles, comme des téléphones, des tablettes et des téléviseurs. Pour catégoriser les appareils en fonction de leur type d'écran, Android définit deux caractéristiques pour chaque appareil : la taille de l'écran (taille physique de l'écran) et la densité de l'écran (densité physique des pixels à l'écran, appelée PPP). Pour simplifier les différentes configurations, Android généralise ces variantes en groupes qui les rendent plus faciles à cibler :
- Quatre tailles généralisées: small, normal, large et xlarge
- Plusieurs densités généralisées : mdpi (moyenne), hdpi (haute), xhdpi (extra haute), xxhdpi (extra extra haute), etc.
Par défaut, votre application est compatible avec toutes les tailles et densités d'écran, car le système ajuste la mise en page de votre UI et vos ressources d'image nécessaires pour chaque écran. Fournissez des images bitmap optimisées pour les densités d'écran courantes.
Optimisez l'expérience utilisateur en utilisant autant que possible des mises en page flexibles. Lorsque des mises en page sont disponibles pour de grands changements de configuration, tels que le mode portrait et le mode paysage, ou les grandes et petites tailles de fenêtre, envisagez de fournir des mises en page alternatives qui s'adaptent aux petits changements de configuration. Cela améliore l'expérience utilisateur sur les facteurs de forme tels que les tablettes, les téléphones et les appareils pliables. Il aide également lorsque les fenêtres changent de taille en mode multifenêtre.
Pour savoir comment créer des ressources alternatives pour différents écrans et comment limiter votre application à certaines tailles d'écran si nécessaire, consultez la présentation de la compatibilité des écrans et les consignes relatives à la qualité des applications sur les grands écrans.
Contrôler la disponibilité de votre application pour des raisons professionnelles
En plus de restreindre la disponibilité de votre application en fonction de l'appareil vous devrez peut-être limiter la disponibilité de votre application ou pour des raisons juridiques. Pour ce type de situation, le Google Play Store propose des options de filtrage dans la Play Console qui vous permettent de contrôler la disponibilité de votre application pour des raisons non techniques, telles que la langue de l'utilisateur ou l'opérateur sans fil.
Filtrage pour la compatibilité technique (matériel requis, par exemple) est toujours basée sur les informations contenues dans votre APK ou AAB. . Mais pour des raisons non techniques, est toujours gérée dans la Google Play Console :
Autres ressources :
- Présentation des ressources de l'application
- Informations sur la structure des applications Android pour séparer les ressources de l'application du code de l'application, y compris sur la façon de fournir d'autres ressources pour des configurations d'appareil spécifiques.
- Filtres sur Google Play
- Informations sur les différentes façons dont le Google Play Store peut empêcher l'installation de votre application sur différents appareils.
- Autorisations sur Android
- Comment Android limite l'accès des applications à certaines API à l'aide d'un système d'autorisations qui nécessite le consentement de l'utilisateur pour que votre application puisse utiliser ces API.