Aperçu

Utilisez UI évolutive 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é techniques présentés par la suite de tests de compatibilité (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.

Avantages et conformité

Voici quelques-uns des avantages d'une UI évolutive :

  • Risque de test réduit : le framework est pré-certifié et conforme à la suite de tests de compatibilité (CTS), ce qui élimine le risque principal d'échec des tests en fin de cycle de programme. Une UI évolutive peut vous faire économiser des mois d'efforts d'ingénierie et accélérer la conformité.

  • Plus de flexibilité de conception : capacité éprouvée à recréer de nombreux modèles de vitres automobiles 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 les obstacles à l'entrée pour la logique de fenêtrage personnalisée.

  • Meilleures performances : l'UI évolutive repose sur une base de fenêtrage très performante, entièrement intégrée à Android standard. Les transitions sont fluides et peuvent être optimisées.

Principes de base

L'UI évolutive réduit le besoin de code spécifique aux OEM, facilite la mise à jour et diminue les risques de lancement en éliminant les pièges et en réduisant les problèmes de certification.

Cette 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 ceux liés au positionnement précis, aux conflits d'ordre Z et à la mise au point des applications.

L'UI évolutive fournit ces blocs de construction 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.

Variant

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 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. La transition peut être déclenchée par un Event et peut définir l'animation que le panneau effectue lors du changement d'état. Un panneau doit passer de son état actuel à toVariant. Pour la synchronisation, toutes les transitions sont animées et coordonnées par le gestionnaire de fenêtres principal.

  • Événement : déclencheur pour initier un changement d'UI. Un OEM ou le système peuvent prédéfinir un déclencheur. Par exemple, _System_OnHomeEvent, _System_TaskOpenEvent ou 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. Ces modifications sont communiquées 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'interface utilisateur du système

En plus de déclencher des intents, CarSystemBarButtons peut déclencher un événement ScalableUI 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 système ?

Cette section décrit les utilisations optimales de l'UI évolutive.

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 barre 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 Accueil 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'UI non liés à l'application, tels que des widgets contextuels, un branding personnalisé 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 avancées pilotées par l'utilisateur, 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.