Aperçu

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é :

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.

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_TaskOpenEvent ou 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

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.