Modifications apportées au framework de compatibilité (Android 15)

Figure 1. L'écran "Modifications de compatibilité de l'application" dans les options pour les développeurs répertorie les modifications que vous pouvez activer.

Cette page décrit les modifications pouvant être activées par le biais du framework de compatibilité sous Android 15. Utilisez cette liste conjointement avec les options pour les développeurs et les commandes ADB pour tester et déboguer votre application lorsque vous préparez la prise en charge et le ciblage d'Android 15.

Voici quelques exemples d'utilisation des outils du framework de compatibilité :

  • Tester les modifications ciblées sans réellement modifier la targetSdkVersion de l'application. Vous pouvez utiliser les boutons d'activation/de désactivation pour forcer l'activation de certaines modifications du comportement afin d'évaluer l'impact sur votre application.
  • Axer votre test sur des modifications spécifiques. Plutôt que d'avoir à traiter toutes les modifications ciblées en même temps, les boutons d'activation/de désactivation vous permettent de désactiver toutes les modifications ciblées, à l'exception de celles que vous souhaitez tester.
  • Gérer les boutons d'activation/de désactivation via adb. Vous pouvez utiliser les commandes adb pour activer et désactiver les modifications à activer/désactiver dans votre environnement de test automatisé.
  • Déboguer plus rapidement grâce aux ID de modification standards. Les modifications pouvant être activées/désactivées possèdent un ID et un nom uniques que vous pouvez utiliser pour déboguer rapidement l'origine du problème dans la sortie du journal.

Pour obtenir des informations complètes sur l'utilisation des outils pour chacun de ces cas d'utilisation, consultez la page sur les outils du framework de compatibilité.

Modifications de comportement inclus dans le framework de compatibilité

La liste de cette section décrit les modifications pouvant être activées/désactivées incluses dans le framework de compatibilité pour les modifications liées à Android 15 et celles pouvant être activées qui peuvent faciliter les tests généraux d'application.

Vous pouvez filtrer la liste des modifications en fonction de leur Default State (État par défaut).

Modifications pouvant être activées dans le framework de compatibilité sous Android 15

CAMERA_MIC_INDICATORS_NOT_PRESENT

ID de modification : 162547999
État par défaut : Désactivé pour toutes les applications.

Indique que cet appareil est compatible avec les indicateurs d'appareil photo et de micro. La valeur est false si elle est présente, car la méthode CompatChanges#isChangeEnabled renvoie true si l'ID de modification n'est pas présent.

DOWNSCALED

ID de modification : 168419799
État par défaut : Désactivé pour toutes les applications.

Cette modification contrôle toutes les modifications de réduction de la taille de la mémoire tampon par application. L'activation de cette modification permet d'appliquer les facteurs de scaling suivants:

Lorsque cette modification est activée pour un package d'application, l'application est automatiquement redimensionnée au facteur de scaling le plus élevé et activé. Par exemple, la valeur 80% est utilisée si les valeurs 80% et 70 % (DOWNSCALE_80 et DOWNSCALE_70) sont activées. Lorsque cette modification et DOWNSCALED_INVERSE sont activés, DOWNSCALED_INVERSE est prioritaire, et le facteur de scaling est appliqué à l'envers.

DOWNSCALED_INVERSE

ID de modification: 273564678
État par défaut: Désactivé pour toutes les applications.

Cette modification contrôle toutes les modifications de réduction de taille inverses du tampon par application. L'activation de cette modification permet d'appliquer les facteurs de scaling à l'inverse (c'est-à-dire que la résolution est améliorée à la place):

Lorsque cette modification est activée pour un package d'application, l'application est automatiquement redimensionnée au facteur de scaling le plus bas et activé. Par exemple, la valeur 80% est utilisée si les valeurs 80% et 70 % (DOWNSCALE_80 et DOWNSCALE_70) sont activées.En effet, lorsque l'application est inverse, un facteur de scaling de 80% est égal à 125%, ce qui est inférieur au facteur de scaling de 142,86% appliqué avec un facteur de scaling inverse de 70 %. Lorsque cette modification et DOWNSCALED sont activés, DOWNSCALED_INVERSE est prioritaire, et le facteur de scaling est appliqué à l'envers.

DOWNSCALE_30

ID de modification : 189970040
État par défaut : Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 30% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 333,33% de la résolution verticale et horizontale de l'écran réel.

DOWNSCALE_35

ID de modification : 189969749
État par défaut : Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 35% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 285,71% de l'affichage réel.

DOWNSCALE_40

ID de modification : 189970038
État par défaut : Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 40% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 250% de l'affichage réel.

DOWNSCALE_45

ID de modification : 189969782
État par défaut : Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 45% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 222,22% de la résolution verticale et horizontale de l'écran réel.

DOWNSCALE_50

ID de modification : 176926741
État par défaut : Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 50% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 200% de l'affichage réel.

DOWNSCALE_55

ID de modification : 189970036
État par défaut : Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 55% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 181,82% de l'affichage réel.

DOWNSCALE_60

ID de modification : 176926771
État par défaut : Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 60% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 166,67% de la résolution verticale et horizontale de l'écran réel.

DOWNSCALE_65

ID de modification : 189969744
État par défaut : Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 65% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 153,85% de la résolution verticale et horizontale de l'écran réel.

DOWNSCALE_70

ID de modification : 176926829
État par défaut : Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 70% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 142,86% de la résolution verticale et horizontale de l'écran réel.

DOWNSCALE_75

ID de modification : 189969779
État par défaut : Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 75% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 133,33% de la résolution verticale et horizontale de l'écran réel.

DOWNSCALE_80

ID de modification : 176926753
État par défaut : Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 80% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 125% de l'affichage réel.

DOWNSCALE_85

ID de modification : 189969734
État par défaut : Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 85% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 117,65% de la résolution verticale et horizontale de l'écran réel.

DOWNSCALE_90

ID de modification : 182811243
État par défaut : Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 90% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 111,11% de la résolution verticale et horizontale de l'écran réel.

ENFORCE_STRICT_QUERY_BUILDER

ID de modification : 143231523
État par défaut : Désactivé pour toutes les applications.

Lorsque cette modification est activée, le SQLiteQueryBuilder vérifie toutes les sélections de requêtes de CalendarProvider2 par rapport à des arguments malveillants.

FGS_BOOT_COMPLETED_RESTRICTIONS

ID de modification: 296558535
État par défaut: Activé pour les applications qui ciblent Android 15 ou version ultérieure.

Lorsque cette option est activée, elle désactive les diffusions en arrière-plan du service de premier plan à partir des diffusions BOOT_COMPLETED pour tous les types, sauf:

Pour en savoir plus sur cette modification, consultez la section sur les restrictions concernant les broadcast receivers BOOT_COMPLETED qui lancent les services de premier plan de la page dédiée aux changements de comportement d'Android 15.

FORCE_DISABLE_HEVC_SUPPORT

ID de modification : 174227820
État par défaut : Désactivé pour toutes les applications.

Forcer la désactivation de la compatibilité d'une application avec les fonctionnalités multimédias HEVC. Les applications doivent déclarer leurs fonctionnalités multimédias compatibles dans leur fichier manifeste, mais cet indicateur peut être utilisé pour forcer une application à ne pas prendre en charge HEVC, forçant ainsi le transcodage tout en accédant aux contenus multimédias encodés en HEVC. L'utilisation de cet indicateur remplace toutes les valeurs par défaut au niveau de l'OS pour les applications. Il est désactivé par défaut, ce qui signifie que les valeurs par défaut de l'OS prévalent. Si cet indicateur et FORCE_ENABLE_HEVC_SUPPORT sont tous deux activés, le système d'exploitation ignore les deux indicateurs.

FORCE_ENABLE_HEVC_SUPPORT

ID de modification : 174228127
État par défaut : Désactivé pour toutes les applications.

Forcer l'activation d'une application pour qu'elle soit compatible avec les fonctionnalités multimédias HEVC. Les applications doivent déclarer leurs fonctionnalités multimédias compatibles dans leur fichier manifeste, mais cet indicateur peut être utilisé pour forcer une application à prendre en charge HEVC, évitant ainsi le transcodage lors de l'accès aux contenus multimédias encodés en HEVC. L'utilisation de cette option remplace toutes les valeurs par défaut au niveau de l'OS pour les applications. Il est désactivé par défaut, ce qui signifie que les valeurs par défaut de l'OS prévalent. Si cet indicateur et FORCE_DISABLE_HEVC_SUPPORT sont tous deux activés, le système d'exploitation ignore les deux indicateurs.

FORCE_NON_RESIZE_APP

ID de modification : 181146395
État par défaut : Désactivé pour toutes les applications.

Empêche le non-redimensionnement des packages auxquels il est appliqué.

FORCE_RESIZE_APP

ID de modification : 174042936
État par défaut : Désactivé pour toutes les applications.

Force le redimensionnement des packages auxquels il est appliqué. Nous n'autorisons le redimensionnement qu'en mode fenêtrage plein écran, sans forcer l'application à passer en mode multifenêtre redimensionnable.

GWP_ASAN

ID de modification : 145634846
État par défaut : Désactivé pour toutes les applications.

Active la détection de bugs dans la mémoire native échantillonnée dans les applications.

Pour en savoir plus sur l'utilisation de GWP-ASan, consultez le guide GWP-ASan.

NATIVE_HEAP_ZERO_INIT

ID de modification : 178038272
État par défaut : Désactivé pour toutes les applications.

Activez l'initialisation automatique à zéro des allocations de mémoire du tas de mémoire natif.

NATIVE_MEMTAG_ASYNC

ID de modification : 145772972
État par défaut : Désactivé pour toutes les applications.

Active la vérification asynchrone (ASYNC) des tags de mémoire dans ce processus. Cet indicateur n'affecte que le matériel compatible avec la Memory Tagging Extension (MTE) ARM.

NATIVE_MEMTAG_SYNC

ID de modification : 177438394
État par défaut : Désactivé pour toutes les applications.

Active la vérification synchrone (SYNC) des tags de mémoire dans ce processus. Cet indicateur n'affecte que le matériel compatible avec la Memory Tagging Extension (MTE) ARM. Si NATIVE_MEMTAG_ASYNC et cette option sont activés, cette option est prioritaire et la MTE est activée en mode SYNC.

OVERRIDE_ANY_ORIENTATION

ID de modification: 265464455
État par défaut: Désactivé pour toutes les applications.

Lorsque cette modification est activée, les forçages d'orientation suivants peuvent être appliqués, quelle que soit l'orientation demandée par l'activité:

OVERRIDE_ANY_ORIENTATION_TO_USER

ID de modification: 310816437
État par défaut: Désactivé pour toutes les applications.

Lorsque cette option est activée, SCREEN_ORIENTATION_USER est activé, ce qui remplace toute orientation demandée par l'activité. Les applications à orientation fixe peuvent être remplacées en plein écran sur les appareils à grand écran avec ignoreOrientationRequest activé avec ce forçage.

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

ID de modification : 191514214
État par défaut : Désactivé pour toutes les applications.

Lorsqu'elle est activée, cette modification oblige les packages auxquels elle s'applique à ignorer la valeur actuelle de android:resizeableActivity ainsi que le SDK cible inférieur ou égal à M, et à considérer l'activité comme non redimensionnable. Dans ce cas, la valeur de rotation et de recadrage de la caméra ne dépend que de la compensation nécessaire, compte tenu de la rotation actuelle de l'écran.

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

ID de modification : 189229956
État par défaut : Désactivé pour toutes les applications.

Lorsqu'elle est activée, cette modification force les packages auxquels elle s'applique à remplacer le comportement de rotation et de recadrage par défaut de la caméra, et à toujours renvoyer CaptureRequest.SCALER_ROTATE_AND_CROP_NONE.

OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE

ID de modification: 266124927
État par défaut: Désactivé pour toutes les applications.

Active SCREEN_ORIENTATION_REVERSE_LANDSCAPE pour l'application à laquelle il s'applique. À moins que OVERRIDE_ANY_ORIENTATION ne soit également activé, SCREEN_ORIENTATION_REVERSE_LANDSCAPE n'est utilisé que lorsque l'activité spécifie l'orientation paysage. L'activation de cette modification peut vous aider à tester le comportement de votre application afin d'identifier les différences entre les appareils où l'orientation paysage correspond à Surface.ROTATION_90 et ceux où elle correspond à Surface.ROTATION_270.

OVERRIDE_MIN_ASPECT_RATIO

ID de modification : 174042980
État par défaut : Désactivé pour toutes les applications.

Cette modification contrôle toutes les modifications qui forcent un format minimal donné. L'activation de cette modification permet d'appliquer les formats minimaux suivants :

Lorsque cette modification est activée pour un package d'application, le format minimal indiqué dans le fichier manifeste de l'application est remplacé par le plus grand format activé, sauf si la valeur du fichier manifeste de l'application est plus élevée.

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

ID de modification: 218959984
État par défaut: Désactivé pour toutes les applications.

Lorsque cette option est activée, elle remplace la restriction de format minimal en plein écran en mode portrait afin d'utiliser tout l'espace disponible à l'écran.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

ID de modification : 180326787
État par défaut : Désactivé pour toutes les applications.

Lorsque OVERRIDE_MIN_ASPECT_RATIO est également activé, l'activation de cette modification pour un package définit le format minimal de l'activité sur une valeur élevée, telle que définie par OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

ID de modification : 180326845
État par défaut : Désactivé pour toutes les applications.

Lorsque OVERRIDE_MIN_ASPECT_RATIO est également activé, l'activation de cette modification pour un package définit le format minimal de l'activité sur une valeur moyenne telle que définie par OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

ID de modification : 203647190
État par défaut : Activé pour toutes les applications.

Lorsque OVERRIDE_MIN_ASPECT_RATIO est également activé, cette modification limite toute autre modification qui force le format minimal d'une activité à une certaine valeur, telle que OVERRIDE_MIN_ASPECT_RATIO_LARGE et OVERRIDE_MIN_ASPECT_RATIO_MEDIUM, aux activités qui sont également en mode portrait.

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

ID de modification: 236283604
État par défaut: Désactivé pour toutes les applications.

Lorsque cette modification est activée, les packages appliqués sont exclus des restrictions d'orientation "Ignorer" que les fabricants d'appareils peuvent définir.

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

ID de modification: 265451093
État par défaut: Désactivé pour toutes les applications.

Active SCREEN_ORIENTATION_NOSENSOR pour l'application à laquelle il s'applique. À moins que OVERRIDE_ANY_ORIENTATION ne soit également activé, SCREEN_ORIENTATION_NOSENSOR n'est utilisé que lorsque l'activité ne spécifie aucune autre orientation fixe.

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

ID de modification: 265452344
État par défaut: Désactivé pour toutes les applications.

Active SCREEN_ORIENTATION_PORTRAIT pour l'application à laquelle il s'applique. À moins que OVERRIDE_ANY_ORIENTATION ne soit également activé, SCREEN_ORIENTATION_PORTRAIT n'est utilisé que lorsque l'activité ne spécifie aucune autre orientation fixe.

RATE_LIMIT_TOASTS

ID de modification : 174840628
État par défaut : Cette modification ne peut pas être activée/désactivée. Il n'est enregistré que par le framework de compatibilité.

Active la limitation du nombre d'appels Toast.show() pour éviter de surcharger l'utilisateur avec trop de toasts en peu de temps. Toute tentative d'affichage d'un nombre de toasts supérieur à celui autorisé sur une période donnée entraîne la suppression du toast.

USE_EXPERIMENTAL_COMPONENT_ALIAS

ID de modification : 196254758
État par défaut : Désactivé pour toutes les applications.

L'activation de cette modification permet au système d'autoriser le package "android" à utiliser des alias de composants.