Les applications Android fonctionnent sur toutes sortes d'appareils : téléphones, tablettes, appareils pliables, appareils ChromeOS, voitures, télévisions 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.
Android 16 (niveau d'API 36) permet aux applications de s'adapter à différents facteurs de forme et tailles d'écran en remplaçant les restrictions d'application concernant l'orientation de l'écran, le format et le redimensionnement. Les remplacements s'appliquent aux appareils dont la plus petite largeur 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 ciblant le niveau d'API 36 sont redimensionnables et peuvent passer en mode multifenêtre (équivalent à resizeableActivity="true") si la plus petite
largeur de l'écran est supérieure ou égale à 600 dp.
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 de l'utilisateur en matière d'orientation de l'appareil, de format et de taille d'écran.
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
Les exceptions aux modifications d'Android 16 incluent les éléments suivants :
Écrans plus petits que sw600dp (la plupart des téléphones, des appareils pliables et des écrans externes des appareils pliables à grand écran)
Jeux, en fonction de l'
android:appCategoryindicateurPubliez votre jeu à l'aide d'Android App Bundles et de la signature d'application Play pour permettre à 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 de 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 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 de framework de compatibilité).
Vous pouvez automatiser les tests avec le framework de test Espresso et les API de test Jetpack Compose.
Guide d'implémentation
Les applications qui limitent l'orientation de l'appareil, le format ou le redimensionnement de l'application peuvent présenter des problèmes d'affichage sur Android 16, tels que 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 appareils ChromeOS, etc., créez une application responsive et adaptative.
Checklist de préparation
Utilisez la checklist suivante pour vous assurer que votre application est prête pour les modifications d'Android 16 :
- É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 peuvent ne pas s'adapter à d'autres formats. Par exemple, les éléments d'interface utilisateur qui remplissent toute la largeur de l'écran peuvent apparaître étirés en mode paysage. Ajoutez une largeur maximale aux composants pour éviter l'étirement.
- Autorisez le défilement des mises en page : si les mises en page ne défilent pas, les utilisateurs peuvent ne pas être en mesure d'accéder aux boutons ou à d'autres éléments d'interface utilisateur qui ne sont pas visibles à l'écran en mode paysage. Autorisez le défilement des mises en page de l'application pour vérifier que tout le contenu est accessible, quelle que soit la hauteur de l'écran.
- Vérifiez 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. Vérifiez que les viseurs pivotent correctement lorsque l'orientation change. Autorisez les viseurs à s'adapter aux formats d'interface utilisateur différents du format du capteur.
- Conservez 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, en pliant ou en dépliant un appareil, ou en redimensionnant une application en mode multifenêtre ou en mode fenêtrage du bureau. 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 offrir une expérience utilisateur optimale, conservez l'état de l'application afin qu'elle 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 de fenêtre et différents formats sans personnalisations spécifiques à l'appareil. Partez du principe que les tailles de fenêtre changeront 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 modifications des dimensions de l'écran pour toujours créer une présentation optimale de l'application.
Pour obtenir un guide pratique sur la création de mises en page adaptatives dans Compose, consultez l' atelier de programmation Créer des applications adaptatives avec Jetpack Compose. Si vous migrez une application qui utilise des vues, consultez Stratégie d'adoption de Compose.
Chronologie
- Android 16 (2025) : la prise en charge de toutes les orientations et de tous les formats, ainsi que du redimensionnement des applications, est l'expérience de base pour les appareils à grand écran (plus petite largeur d'écran >= 600 dp) pour les applications ciblant le niveau d'API 36. Toutefois, les développeurs peuvent désactiver cette fonctionnalité.
| Niveau d'API cible | Appareils concernés | Désactivation autorisée pour les développeurs |
|---|---|---|
| 36 (Android 16) | Appareils à grand écran (plus petite largeur d'écran >= 600 dp) | Oui |
Les délais pour cibler des niveaux d'API spécifiques sont propres à chaque plate-forme de téléchargement d'applications. Google Play exigera que les applications ciblent le niveau d'API 36 à partir d'août 2026.
Ressources supplémentaires
- Modifications de comportement : applications ciblant Android 16 ou version ultérieure
- Créer des applications adaptatives
- Bonnes pratiques et pratiques à éviter pour les applications adaptatives