Utilisez l'interface utilisateur évolutive pour créer des expériences utilisateur sophistiquées, dynamiques et multipanels dans les voitures. Interface utilisateur évolutive :
Fournit un système de fenêtrage flexible.
Réduit les risques, les coûts et la complexité techniques présentés par la Compatibility Test Suite (CTS) pour les implémentations d'interface utilisateur.
L'interface utilisateur évolutive est compatible avec un large éventail de conceptions modernes d'infodivertissement embarqué (IVI) nécessitant des arrangements de fenêtres dynamiques, tout en s'adaptant pour prendre en charge les expériences traditionnelles avec des arrangements de fenêtres statiques.
Android 17 introduit les fonctionnalités suivantes spécifiques au fenêtrage avancé :
- Implémenter des panneaux de notifications heads-up
- Personnaliser les barres système
- Maximiser la conformité des tests avec les invariants WindowManager
- Intégrer l'assistant de configuration
Exemples d'expériences
L'interface utilisateur évolutive permet une variété infinie de configurations de fenêtrage. Voici quelques exemples de scénarios créés pour exercer l'interface utilisateur évolutive :
Arrière-plan de carte avec applications flottantes
Configuration d'arrière-plan de carte avec d'autres applications flottant au-dessus.
Arrière-plan de l'application
Configuration d'arrière-plan d'application avec des panneaux flottants.
Application épinglée sous d'autres applications
Application épinglée, telle qu'un conteneur de widget, avec d'autres applications qui se lancent au-dessus.
Panneau flottant conditionnel
Panneau flottant conditionnel qui ne s'affiche que lorsque des conditions spécifiques sont remplies, par exemple lorsque des contenus multimédias sont en cours de lecture ou lorsqu'une alerte est déclenchée.
Application épinglée près du conducteur
Application épinglée positionnée plus près du conducteur.
Mise en page en écran partagé
Mise en page en écran partagé affichant deux applications côte à côte.
Écran partagé interactif
Mise en page en écran partagé interactif permettant un redimensionnement dynamique.
Mise en page multi-ancrage pour les grands écrans
Mise en page multi-ancrage conçue pour les grands écrans.
Carrousel d'applications sur l'écran d'accueil
Mise en page de l'écran d'accueil avec un carrousel d'applications.
Avantages et conformité
Voici quelques-uns des avantages de l'interface utilisateur évolutive :
Risque de test réduit : le framework est pré-certifié et conforme au test CTS, ce qui élimine le risque principal d'échec des tests en fin de cycle de programme. L'interface utilisateur évolutive peut permettre d'économiser des mois d'efforts d'ingénierie et d'accélérer la conformité.
Plus de flexibilité de conception : capacité éprouvée à recréer de nombreux modèles de fenêtrage automobile complexes existants. L'interface utilisateur évolutive est compatible avec des conceptions ambitieuses et très différenciées.
Complexité d'implémentation réduite : l'abstraction dans un modèle XML de haut niveau basé sur la configuration réduit la barrière à l'entrée pour la logique de fenêtrage personnalisée.
Meilleures performances : l'interface utilisateur évolutive s'exécute sur une base de fenêtrage hautes performances, entièrement intégrée à Android standard. Les transitions sont fluides, ce qui permet une optimisation directe.
Principes de base
L'interface utilisateur évolutive réduit le besoin de code spécifique à l'OEM, facilite la mise à jour et réduit les risques de lancement en éliminant les pièges et en réduisant les problèmes de certification.
L'approche basée sur XML résout les problèmes courants lors de la gestion de systèmes de fenêtrage complexes dans AAOS, tels que le positionnement précis, les conflits d'ordre Z et le focus de l'application.
L'interface utilisateur évolutive fournit ces principes de base.
Panneau
Un panneau est le conteneur rectangulaire fondamental à l'écran. Chaque panneau est associé à une tâche racine dédiée pour une gestion indépendante. Un panneau peut héberger
des tâches d'application (TaskPanel) ou du contenu basé sur une vue, tel que des widgets (DecorPanel).
Pour en savoir plus, consultez Configurer un panneau.
Variante
Une variante définit un état visuel spécifique pour un panneau et inclut des propriétés telles que bounds (position et taille), visibility, layer (ordre Z) et rayon corner. Un seul panneau peut avoir des variantes, telles que opened, closed ou minimized. Pour en savoir plus, consultez Utiliser une variante pour concevoir un état visuel.
Transition
Une transition définit la façon dont un panneau passe de son état actuel fromVariant à un nouvel état, toVariant. Un Event déclenche la transition, qui définit l'animation utilisée par le panneau lors du changement d'état. Un panneau doit passer de son état actuel à toVariant. Pour la synchronisation, le gestionnaire de fenêtres principal anime et coordonne toutes les transitions.
- Événement : déclencheur pour lancer une modification de l'interface utilisateur. Un OEM ou le système peut prédéfinir un déclencheur. Par exemple,
_System_OnHomeEvent,_System_TaskOpenEventou une pression sur un bouton de navigation personnalisé.
Par exemple, l'interface utilisateur évolutive utilise des événements pour déclencher des transitions. Ces transitions animent un panneau d'une variante à une autre pour afficher les modifications dynamiques dans l'interface utilisateur. L'interface utilisateur évolutive communique ces modifications à d'autres applications système pour ajuster le contenu si nécessaire. En définissant les relations d'interface utilisateur au format XML, vous pouvez :
Spécifier des comportements d'interface utilisateur complexes : définir des interactions complexes avec l'interface utilisateur.
Organiser les systèmes de fenêtrage : contrôler le positionnement et la superposition des fenêtres.
Implémenter des thèmes visuels : appliquer une image de marque et une esthétique cohérentes.
Réduire la complexité du code : minimiser le besoin de développement de code personnalisé étendu.
Pour en savoir plus, consultez Configurer une transition.
Boutons de l'interface utilisateur du système
En plus de déclencher des intents, CarSystemBarButtons peut déclencher un
événement d'interface utilisateur évolutive lorsqu'il est appuyé à l'aide des attributs event, selectedEvent et
unselectedEvent.
event décrit l'événement à déclencher lorsque vous appuyez sur le bouton. Si
un contrôle plus précis d'un événement est requis, utilisez les attributs selectedEvent
et unselectedEvent pour spécifier l'événement à déclencher lorsque le bouton
est sélectionné ou désélectionné, respectivement.
Quand implémenter l'UI du système
Cette section décrit les utilisations optimales de l'interface utilisateur évolutive.
- Créer des mises en page multipanels persistantes
- Implémenter une scène d'accueil dynamique
- Appliquer des superpositions contextuelles
- Concevoir des interactions complexes avec les panneaux
Créer des mises en page multipanels persistantes
Créez une expérience multizone dans laquelle différentes zones de l'écran sont dédiées en permanence à des fonctions spécifiques. Par exemple, des commandes multimédias dédiées, une bande de climatisation ou une carte en plein écran.
Utilisez TaskPanels pour les applications principales (telles que la navigation) et DecorPanels pour les éléments d'interface utilisateur, sous forme de vues, qui doivent être placés entre les TaskPanels.
Implémenter une scène d'accueil dynamique
Implémentez une scène Accueil composée de plusieurs panneaux d'application visibles et interactifs simultanément. Par exemple, une carte, un lecteur multimédia et une grille d'applications.
Pour faire passer tous les panneaux pertinents à leurs variantes d'accueil opened ou default, configurez _System_HomeEvent.
Appliquer des superpositions contextuelles
Placez des éléments d'interface utilisateur non liés à l'application, tels que des widgets contextuels, une image de marque personnalisée et des barres de glissement qui peuvent être animées en coordination avec les tâches de l'application.
Utilisez DecorPanels pour tous les éléments purement décoratifs ou d'hébergement de widgets. Si un
widget héberge une application entièrement fonctionnelle et lancée, un Panel > TaskPanel est
optimal. Utilisez DecorPanels pour les éléments d'interface utilisateur basés sur une vue lorsque la superposition doit être synchronisée avec la superposition TaskPanel.
Concevoir des interactions complexes avec les panneaux
Concevez des actions avancées pilotées par l'utilisateur, telles que le redimensionnement dynamique d'un panneau d'application ou l'ajustement des vues du tableau de bord en fonction du contenu de l'écran principal.
Définissez des Events personnalisés pour déclencher des Transitions spécifiques non standard au système.