Pour mettre en œuvre une expérience utilisateur cohérente et de haute qualité, et pour éviter les problèmes qui entraînent des échecs de la Compatibility Test Suite (CTS), implémentez les principes de base de WindowManager (WM) décrits ici. Ces principes permettent de garantir la conformité avec les consignes de qualité des applications pour voiture. Ils s'appliquent aux éléments suivants :
Versions d'Android qui utilisent une architecture en mode multifenêtre, introduite dans Android 14 et poursuivie dans Android 15 avec l'interface utilisateur évolutive.
Interface utilisateur évolutive Android et vos propres implémentations personnalisées
En appliquant ces principes, vous éviterez de manière proactive la plupart des problèmes de conformité CTS et des problèmes de test fonctionnel.
Terminologie
- invariant
- Condition logique qui reste vraie tout au long de l'exécution d'une application et qui assure l'intégrité structurelle. Un invariant agit comme une règle de limite.
- activité spéciale
- Également appelée activité d'interface utilisateur automatique ou activité d'interface utilisateur système, cette activité d'application critique dispose d'une zone dédiée sur l'écran qui est toujours visible ou la plupart du temps, même lorsque l'utilisateur appuie sur Accueil,comme une application de navigation principale ou de cluster.
- activité standard
- Toute activité d'application standard qui n'est pas essentielle à l'interface utilisateur principale du système, comme une application multimédia tierce lancée depuis la grille d'applications.
Principes WM
Pour maximiser la conformité CTS, appliquez ces principes dans vos implémentations WM.
Utiliser une configuration stable au lancement de l'activité
Lancez chaque nouvelle activité standard avec une seule transition WM qui définit sa position, sa taille et sa densité finales. Vous ne devez pas déclencher une deuxième transition qui modifie la configuration de la fenêtre de la tâche sous-jacente (telle que la taille ou la densité) immédiatement après la première, car cela entraîne un changement de configuration immédiatement après la création de l'activité.
Déplacer les activités standards à l'état arrêté
Lorsque l'utilisateur accède à la tâche ou à la scène d'accueil, vous devez déplacer toutes les activités standards en cours d'exécution à l'état arrêté pour maintenir le cycle de vie prévisible des applications Android requis par les tests CTS. Pour en savoir plus sur les attentes concernant le cycle de vie des applications dans les environnements automobiles, consultez Empêcher l'utilisation lorsque les restrictions liées à l'expérience utilisateur sont actives.
Empêcher l'obscurcissement du contenu des activités standards
Ne dessinez pas de décorations ni d'éléments d'interface utilisateur personnalisés qui masquent le contenu d'une activité standard. Si vous dessinez des superpositions personnalisées (comme une barre de contrôle de la température personnalisée), vous devez signaler les dimensions au système avec des encarts SystemOverlay. Pour Android 15 et versions ultérieures, utilisez DecorPanel dans l'interface utilisateur évolutive. Les applications
s'appuient sur ces encarts pour disposer le contenu en toute sécurité.
Masquer les superpositions sur demande du mode immersif
Lorsqu'une application demande le mode immersif, vous devez masquer tous les éléments d'interface utilisateur personnalisés temporaires et supprimer leurs encarts SystemOverlay. Les obstructions persistantes interfèrent avec les attentes de pixels d'une application. Pour en savoir plus sur la façon dont les applications demandent
et gèrent le mode immersif, consultez
Barres système, mode immersif et rendu de bord à bord.
Appliquer des angles arrondis uniquement au niveau de l'écran
Appliquez des angles arrondis uniquement au niveau de l'écran à l'aide des configurations de ressources appropriées dans frameworks/base. N'appliquez pas d'angles arrondis arbitraires à la surface d'une activité standard.
Cela interfère avec les tests des éléments d'interface utilisateur. À titre temporaire, vous pouvez spécifier le même rayon d'angle arrondi pour l'écran que celui que vous appliquez à la surface de l'activité standard.
Conserver la taille de l'application sur demande du mode immersif
Lorsqu'une application demande à passer en mode immersif, ne redimensionnez pas sa fenêtre. Cela déclenche un changement de configuration perturbateur. Au lieu de cela, pour maximiser l'application, proposez un bouton plein écran contrôlé par l'utilisateur.