Présentation de la compatibilité des appareils

Android est conçu pour fonctionner sur de nombreux appareils différents, tels que des téléphones, les tablettes et les téléviseurs. La gamme d'appareils offre un énorme potentiel de votre application. Pour que votre application fonctionne sur tous les appareils, elle doit tolèrent la variabilité des fonctionnalités et fournissent 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 attributs ressources d'application dans des tels que des mises en page XML différentes pour différentes tailles d'écran. Android, puis charge les ressources appropriées en fonction de la configuration actuelle de l'appareil. Avec à la conception de votre application et à d'autres ressources, vous pouvez publier package d'application unique (APK) qui optimise l'expérience utilisateur sur divers d'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é" ? ?

Il existe deux types de compatibilité pour le développement Android: compatibilité des appareils et compatibilité des applications.

Android étant un projet Open Source, tout fabricant de matériel peut construire un appareil qui exécute 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. Ainsi, si un utilisateur installe votre application depuis le Google Play Store, utilisent un appareil compatible avec Android.

Toutefois, vous devez déterminer si votre application est compatible avec ces la configuration potentielle de l'appareil. Android fonctionne sur de nombreux types d'appareils. certaines configurations ne sont pas disponibles sur tous les appareils. Par exemple, certaines ne sont pas toujours équipés d'un capteur de boussole. Si la fonctionnalité de base de votre application nécessite une boussole, votre application n'est compatible qu'avec les appareils inclure cette fonctionnalité.

Contrôler la disponibilité de votre application sur les appareils

Android prend en charge diverses fonctionnalités que votre application peut exploiter via la plate-forme API. Certaines fonctionnalités sont matérielles, comme la boussole. certains sont de manière logicielle (par exemple, les widgets d'application) ; tandis que 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 le en fonction des fonctionnalités requises par votre application.

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 l'accès de votre application pour certains appareils sur le Google Play Store, en fonction des critères Caractéristiques de l'appareil:

Fonctionnalités de l'appareil

Pour gérer la disponibilité de votre application en fonction des fonctionnalités de l'appareil, Android définit ID de fonctionnalité de toutes les fonctionnalités matérielles ou logicielles qui pourraient ne pas être 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 lorsqu'ils appareils ne fournissent pas une fonctionnalité nécessaire en la déclarant à l'aide d'un <uses-feature> dans l'espace de noms fichier manifeste.

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 l'utilisateur ne peut pas installer votre application.

Toutefois, si la fonctionnalité principale de votre application n'exige pas un fonctionnalité de l'appareil, définissez le required à "false" et vérifiez 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 demander si une caractéristique est disponible en appelant hasSystemFeature() comme ceci:

Kotlin

if (!packageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
    // This device doesn't have a compass. Turn off the compass feature.
    disableCompassFeature()
}

Java

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 via le Google Play Store, consultez les Filtres sur Google Play dans la documentation Google Cloud.

<ph type="x-smartling-placeholder">

Version de la plate-forme

Différents appareils peuvent exécuter différentes versions de la plate-forme Android, par exemple comme Android 12 ou Android 13. Souvent, chaque version successive de la plate-forme ajoute des API n'est pas disponible 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 le minSdkVersion et targetSdkVersion dans votre fichier build.gradle:

Kotlin

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)
        ...
    }
}

Groovy

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 page Configurez votre build.

Chaque version successive d'Android est compatible avec les applications créées à l'aide des API des versions précédentes de la plate-forme, afin que votre application soit 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:

Kotlin

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()
}

Java

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 fonctionne sur des appareils de différentes tailles, tels que les téléphones, les tablettes et les téléviseurs. À classer les appareils par type d'écran, Android définit deux caractéristiques pour chaque appareil: taille de l'écran (taille physique de l'écran) et 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 (moyen), hdpi (élevée), xhdpi (extra) élevé), xxhdpi (extra-extra élevé), 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. Fournir des images bitmap optimisées pour les écrans courants et différentes densités.

Optimisez l'expérience utilisateur en utilisant autant que possible des mises en page flexibles. Lorsqu'il existe des mises en page destinées à des modifications de configuration importantes (portrait et en mode paysage, ou de grandes ou petites tailles de fenêtre, envisagez de proposer d'autres des mises en page flexibles aux petites modifications de la configuration. Cela améliore l'expérience utilisateur sur des facteurs de forme tels que les tablettes, les téléphones et les pliables. Il aide également lorsque les fenêtres changent de taille en mode multifenêtre.

Pour savoir comment créer d'autres ressources pour différents écrans et comment limiter votre application à certaines tailles d'écran si nécessaire, lire les compatibilité d'écran présentation et consultez les application sur grand écran consignes relatives à la qualité.

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 pour les entreprises ou pour des raisons juridiques. Dans ce type de situation, le Google Play Store propose des options de filtrage dans la Play Console qui vous permettent de contrôler disponibilité pour des raisons non techniques (paramètres régionaux de l'utilisateur ou sans fil, par exemple) opérateur.

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 applications à partir du code de l'application, y compris la manière de fournir d'autres pour des configurations d'appareils spécifiques.
Filtres sur Google Play
Informations sur les différentes façons dont le Google Play Store peut empêcher l'accès à vos application d'être installée sur différents appareils.
Autorisations sur Android
Comment Android limite l'accès des applications à certaines API avec un système d'autorisations qui nécessite le consentement de l'utilisateur pour que votre appli utilise ces API.