Orientation, format et redimensionnement de l'application

Les applications Android s'exécutent sur tous les types d'appareils: téléphones, tablettes, pliables, Chromebooks, voitures, téléviseurs et même XR. Pour s'adapter à cet environnement varié, votre application doit être compatible avec tous les facteurs de forme et toutes les tailles d'écran des appareils.

Android 16 (niveau d'API 36) permet aux applications de s'adapter à différents facteurs de forme et tailles d'écran en ignorant les restrictions d'application pour l'orientation de l'écran, le format et la redimensionnement. Les forçages s'appliquent aux appareils dont la largeur la plus petite est supérieure ou égale à 600 dp, ce qui définit les éléments suivants:

  • Tablettes
  • Écrans internes des appareils pliables à grand écran
  • Fenêtrage du bureau (sur tous les facteurs de forme)

Les applications qui ciblent le niveau d'API 36 peuvent être redimensionnées et peuvent passer en mode multifenêtre (équivalent à resizeableActivity="true") si la largeur la plus petite de l'écran est d'au moins 600 dp.

L'application est au format letterbox sur un appareil à grand écran déplié avant Android 16, mais en plein écran lorsque vous ciblez Android 16. L'application affiche plus d'articles d'actualités en plein écran qu'en mode letterbox.
Figure 1 : Le flux "Developer News" (Actualités pour les développeurs) qui était auparavant au format letterbox sur les appareils à grand écran (à gauche) s'affiche en plein écran lorsque vous ciblez Android 16 (à droite).

Android 16 applique un modèle cohérent de conception d'application adaptative qui optimise l'expérience utilisateur en respectant les préférences des utilisateurs concernant l'orientation de l'appareil, le format et la taille d'affichage.

Modifications

Les attributs et API de fichier manifeste suivants sont ignorés pour les applications ciblant Android 16 (niveau d'API 36) sur les grands écrans:

Attribut ou API Valeurs ignorées
screenOrientation portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape
resizeableActivity tous
minAspectRatio tous
maxAspectRatio tous
setRequestedOrientation()

getRequestedOrientation()
portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape

Exceptions

Voici les exceptions aux modifications apportées à Android 16:

  • Écrans de moins de 600 dp (la plupart des téléphones, des téléphones à clapet et des écrans extérieurs des pliables grand écran)

  • Jeux, en fonction de l'indicateur android:appCategory

    Publiez votre jeu à l'aide d'Android App Bundles et du service Signature d'application Play, ce qui permet à Google Play de gérer l'indicateur et de fournir automatiquement les avantages des app bundles. Consultez également la présentation du fichier manifeste d'application.

  • L'utilisateur active le comportement par défaut de l'application dans les paramètres du format

Désactiver

Pour désactiver le comportement du niveau d'API 36, déclarez la propriété de fichier manifeste PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY.

Pour désactiver une activité spécifique, définissez la propriété dans l'élément <activity>:

<activity ...>
    <property
        android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
        android:value="true" />
    ...
</activity>

Pour désactiver cette fonctionnalité pour l'ensemble de votre application, définissez la propriété dans l'élément <application>:

<application ...>
    <property
        android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
        android:value="true" />
    ...
</application>

Tests

Pour vérifier si votre application est affectée par les modifications d'Android 16, utilisez les émulateurs de la série Pixel Tablet et Pixel Fold dans Android Studio, puis définissez targetSdkPreview = "Baklava" dans le fichier build.gradle du module de votre application.

Vous pouvez également utiliser le framework de compatibilité des applications sur vos appareils de test en activant l'indicateur UNIVERSAL_RESIZABLE_BY_DEFAULT (voir Outils du framework de compatibilité).

Vous pouvez automatiser les tests avec le framework de test Espresso et les API de test Jetpack Compose.

Problèmes courants

Les applications qui limitent l'orientation, le format ou le redimensionnement de l'appareil peuvent rencontrer des problèmes d'affichage sur Android 16, comme des mises en page qui se chevauchent.

Pour offrir une expérience utilisateur optimale sur les téléphones, les appareils pliables, les tablettes, les Chromebooks, les écrans de voiture ou les XR, concevez votre application pour qu'elle soit responsive et adaptative:

  • Évitez les composants d'interface utilisateur étirés:les mises en page conçues pour les écrans de téléphone standard en mode portrait ne seront probablement pas adaptées à d'autres formats. Par exemple, les éléments d'interface utilisateur qui occupent toute la largeur de l'écran s'affichent étirés en mode paysage. Ajoutez une largeur maximale aux composants pour éviter qu'ils ne s'étirent.

  • Activer le défilement des mises en page:si les mises en page ne défilent pas, les utilisateurs risquent de ne pas pouvoir accéder aux boutons ou à d'autres éléments d'interface utilisateur qui se trouvent en dehors de l'écran en mode paysage. Activez le défilement des mises en page de l'application pour vous assurer que tout le contenu est accessible, quelle que soit la hauteur de l'écran.

  • Assurez-vous de la compatibilité de l'appareil photo en mode portrait et paysage:les aperçus du viseur de l'appareil photo qui supposent un format et une orientation spécifiques par rapport au capteur de l'appareil photo peuvent entraîner des aperçus étirés ou inversés sur les écrans non conformes. Assurez-vous que les viseurs pivotent correctement en cas de changement d'orientation. Activez les viseurs pour qu'ils s'adaptent aux formats d'interface utilisateur qui diffèrent du format du capteur.

  • Conserver l'état lors des changements de taille de fenêtre:la suppression des restrictions d'orientation et de format peut entraîner des changements fréquents de la taille de la fenêtre de l'application en fonction de la façon dont les utilisateurs préfèrent utiliser une application, par exemple en faisant pivoter, plier ou déplier un appareil, ou en redimensionnant une application en mode multifenêtre ou en mode fenêtrage pour ordinateur. Les modifications de configuration, telles que les changements d'orientation et le redimensionnement de la fenêtre, entraînent la recréation de l'activité (par défaut). Pour garantir une expérience utilisateur optimale, conservez l'état de l'application lors des modifications de configuration afin que votre application conserve les données (telles que les entrées de formulaire) et que les utilisateurs puissent conserver le contexte.

  • Utilisez des classes de taille de fenêtre:prenez en charge différentes tailles et proportions de fenêtre sans personnalisations spécifiques à l'appareil. Supposons que les tailles de fenêtre changent fréquemment. Utilisez des classes de taille de fenêtre pour caractériser les dimensions de la fenêtre, puis appliquez une mise en page adaptative appropriée.

  • Créez des mises en page responsives:dans les classes de taille de fenêtre, les mises en page responsives s'adaptent aux changements de dimensions d'affichage pour créer toujours une présentation optimale de l'application.

Vos trajets

  • Android 16 (2025) : la prise en charge de toutes les orientations et de tous les formats, ainsi que la redimensionnement des applications, constituent l'expérience de référence pour les appareils à grand écran (plus petite largeur d'écran >= 600 dp) pour les applications qui ciblent le niveau d'API 36. Toutefois, les développeurs peuvent désactiver cette fonctionnalité.

  • Version d'Android en 2026:la prise en charge de toutes les orientations et de tous les formats, ainsi que la redimensionnement des applications, constitueront l'expérience de référence pour les appareils à grand écran (plus petite largeur d'écran >= 600 dp) pour les applications qui ciblent le niveau d'API 37. Les développeurs ne pourront pas désactiver cette fonctionnalité.

Niveau d'API cible Appareils concernés Désactivation autorisée par le développeur
36 (Android 16) Appareils à grand écran (largeur d'écran minimale ≥ 600 dp) Oui
37 (prévu) Appareils à grand écran (largeur d'écran minimale ≥ 600 dp) Non

Les échéances pour cibler des niveaux d'API spécifiques sont propres à chaque plate-forme de téléchargement d'applications. À compter d'août 2026, Google Play exigera que les applications ciblent le niveau d'API 36, puis le niveau d'API 37 à partir d'août 2027.

Ressources supplémentaires