Utilisez Scalable UI pour créer des expériences utilisateur sophistiquées, dynamiques et multipanaux dans les voitures. Interface utilisateur évolutive :
Fournit un système de fenêtrage flexible.
Réduit les risques, les coûts et la complexité liés à l'ingénierie présentés par la Compatibility Test Suite (CTS) pour les implémentations d'interface utilisateur.
L'UI évolutive est compatible avec un large éventail de conceptions modernes d'infodivertissement embarqué (IVI) qui nécessitent 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 notification 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'UI évolutive permet une infinité de configurations de fenêtres. Voici quelques exemples de scénarios créés pour tester l'UI évolutive :
Arrière-plan de carte avec applications flottantes
Configuration de l'arrière-plan d'une carte avec d'autres applications flottant au-dessus.
Arrière-plan de l'application
Configuration de l'arrière-plan d'une application avec des panneaux flottants.
Appli épinglée sous d'autres applis
Une application épinglée, telle qu'un conteneur de widgets, avec d'autres applications qui se lancent au-dessus.
Panneau flottant conditionnel
Il s'agit d'un panneau flottant conditionnel qui s'affiche uniquement lorsque des conditions spécifiques sont remplies, par exemple lorsqu'un contenu multimédia est en cours de lecture ou lorsqu'une alerte est déclenchée.
Appli épinglée près du conducteur
Une application épinglée plus près du conducteur.
Disposition de l'écran partagé
Mise en page en écran partagé affichant deux applications côte à côte.
Écran partagé interactif
Une mise en page interactive en écran partagé permettant un redimensionnement dynamique.
Mise en page multi-ancrage pour les grands écrans
Mise en page multi-ancres conçue pour les grands écrans.
Carrousel d'applications sur l'écran d'accueil
Disposition de l'écran d'accueil avec un carrousel d'applications.
Avantages et conformité
Voici quelques-uns des avantages de l'UI évolutive :
Réduction des risques liés aux tests : le framework est pré-certifié et conforme au CTS, ce qui élimine le risque principal d'échec des tests en fin de cycle de programme. Une UI évolutive peut vous faire gagner des mois de travail d'ingénierie et accélérer la conformité.
Plus de flexibilité de conception : capacité éprouvée à recréer de nombreux modèles de vitrage automobile complexes existants. L'UI évolutive prend en charge les 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'UI é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'UI évolutive minimise 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 permet de résoudre les problèmes courants liés à 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 des applications.
L'UI évolutive fournit ces composants de base.
Panneau
Un panneau est le conteneur rectangulaire de base sur l'écran. Chaque panneau correspond à 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 des vues, comme 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 le rayon corner. Un même panneau peut avoir plusieurs variantes, comme 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 d'un changement d'UI. Un OEM ou le système peuvent prédéfinir un déclencheur. Par exemple,
_System_OnHomeEvent,_System_TaskOpenEventou l'appui sur un bouton de navigation personnalisé.
Par exemple, Scalable UI 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'UI. L'UI évolutive communique ces modifications aux autres applications système pour ajuster le contenu si nécessaire. En définissant des relations d'UI en XML, vous pouvez :
Spécifiez des comportements complexes de l'UI : définissez des interactions complexes de l'interface utilisateur.
Organiser les systèmes de fenêtres : contrôlez le positionnement et la superposition des fenêtres.
Implémentez des thèmes visuels : appliquez une esthétique et un branding cohérents.
Réduisez la complexité du code : minimisez le besoin de développer un code personnalisé étendu.
Pour en savoir plus, consultez Configurer une transition.
Boutons de l'UI du système
En plus de déclencher des intents, CarSystemBarButtons peut déclencher un événement d'UI évolutive lorsqu'il est appuyé à l'aide des attributs event, selectedEvent et unselectedEvent.
event décrit l'événement à déclencher lorsque l'utilisateur appuie sur le bouton. Si vous avez besoin d'un contrôle plus précis sur un événement, 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'UI évolutive.
- Créer des mises en page multipanaux persistantes
- Implémenter une scène de maison dynamique
- Appliquer des calques contextuels
- Concevoir des interactions complexes avec les panneaux
Créer des mises en page multipanaux 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 (comme la navigation) et DecorPanels pour les éléments d'interface utilisateur, sous forme de vues, qui doivent être placés entre TaskPanels.
Implémenter une scène de maison dynamique
Implémentez une scène Home composée de plusieurs panneaux d'application interactifs et visibles simultanément. Par exemple, la carte, le lecteur multimédia et la grille d'applications.
Pour faire passer tous les panneaux concernés à leur variante opened ou default, configurez _System_HomeEvent.
Appliquer des calques contextuels
Placez des éléments d'interface utilisateur non liés à l'application, tels que des widgets contextuels, une identité visuelle personnalisée et des barres de déplacement 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 hébergeant des widgets. Si un widget héberge une application entièrement fonctionnelle et pouvant être lancée, un Panel > TaskPanel est optimal. Utilisez DecorPanels pour les éléments d'UI basés sur les vues lorsque la superposition doit être synchronisée avec la superposition TaskPanel.
Concevoir des interactions complexes avec les panneaux
Concevez des actions utilisateur avancées, comme 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 standards.
Étendre les mises en page IVI à un cockpit numérique unifié
L'UI évolutive gère le fenêtrage multipanneau (TaskPanel et DecorPanel) sur l'écran d'info-divertissement principal (display0) dans la VM SDV IVI. Vous pouvez associer l'UI évolutive à Display Safety pour mettre à jour les vues du tableau de bord lorsque la mise en page de l'écran principal change :
- Actions d'UI évolutives (VM
SDV IVI) : lorsqu'un état de panneau change sur l'écran principal, l'UI évolutive peut envoyer un intent à l'aide d'un<Action>dansxml/scalable_ui_actions.xmlpour informer les composants du cluster des modifications de la mise en page ou du mode. Pour en savoir plus, consultez Configurer une action. - DriverUI (VM
SDV IVI) : s'exécute sur l'écran du cluster (display1) en tant qu'application système lancée parClusterHomeManageret conçue avecautomotive-design-compose.DriverUIaffiche le contenu des clusters non liés à la sécurité (comme les cartes, les contenus multimédias et les appels téléphoniques) et gère les mises à jour d'état du système IVI. - Passerelle SDV sur IVI (VM
SDV IVI) :DriverUIutiliseSDV Gateway Clientpour se connecter au rendu à haute disponibilité (HAR) via gRPC (driverui.proto).DriverUIenvoie des mises à jour de l'état du cluster (telles que les variantes de mise en page, les jetons de thème et les modifications de paramètres régionaux) ainsi que des messages de pulsation périodiques. HARet Safety Monitor (VMSDV Media) : s'exécutent dans une VMSDV Mediadistincte pour afficher les éléments essentiels à la sécurité (tels que la vitesse, le rapport engagé, les voyants, les carillons et les flux de caméras de recul). Bien qu'il reçoive des signaux de présence deDriverUI,HARconserve la transparence des régions du cluster Android afin que le contenuDriverUIse fonde avec les calques de sécuritéHAR. SiSDV IVIest en cours de démarrage ou n'est pas disponible,HARaffiche des espaces réservés de remplacement.- Configuration OEM : pour configurer ce flux, configurez les déclencheurs
<Event>et les intents<Action>dansxml/scalable_ui_actions.xmlsurSDV IVI, mettez à jour le fichier de conception Figma et les mappages de signauxConfig.jsonpour la chaîne d'outils de conception de sécurité, et implémentez la couche d'abstraction de plate-forme (PAL) HAR pour votre matériel cible.