Aperçu de l'IHM

Android Automotive est une solution de plateforme d'infodivertissement embarquée fournie avec le projet Android Open Source (AOSP). Les articles de cette rubrique présentent les concepts et composants clés fournis par l'interface utilisateur du système automobile Android et les applications de base nécessaires pour créer un système d'interface homme-machine (IHM) efficace pour les constructeurs OEM, les développeurs tiers et les utilisateurs finaux.

  • Guide d'intégration de l'hôte AOSP . L'App Host permet aux applications de voiture 3P de restituer en son nom des composants d'interface utilisateur (UI) de style OEM.
  • Structure des paramètres de la voiture . Car Settings fournit une interface utilisateur visuelle centrée sur la voiture, des optimisations de base de la distraction du conducteur et des points d'entrée de personnalisation supplémentaires pour les constructeurs OEM.
  • Guide d'intégration de la bibliothèque d'interface utilisateur automobile . La bibliothèque d'interface utilisateur de voiture fournit un cadre de développement d'interface utilisateur pour permettre à toutes les applications présentes dans la voiture d'atteindre la cohérence et la personnalisation.
  • Personnaliser les icônes du système de la barre d'état . La barre d'état est un composant de l'interface utilisateur du système Android utilisé pour afficher de manière persistante des informations importantes aux utilisateurs. Découvrez comment personnaliser les icônes du système de la barre d'état.
  • Notifications d'avertissement . Découvrez comment personnaliser les notifications d'avertissement.
  • Numéroteur . Utilisez cette application système Android pour mettre en œuvre une expérience optimisée pour la distraction (DO) pour les appels Bluetooth, la navigation dans les contacts et la gestion des appels.
  • Médias . Avec seulement quelques paramètres et un service, les développeurs peuvent étendre les applications multimédias existantes. Bien que les applications doivent adhérer au modèle Automotive Media, les développeurs peuvent personnaliser les couleurs, les polices, les icônes et bien plus encore du modèle pour créer une expérience de marque.
  • Notifications . Découvrez comment modifier l'apparence et les configurations des notifications.

Terminologie

Ces termes sont utilisés dans HMI et dans les articles connexes :

Terme Définition
Applications principales L'ensemble clé d'applications essentielles à la fonctionnalité du système, notamment les paramètres, la radio, le CVC, les médias, le numéroteur et le clavier.
Document de définition de compatibilité (CDD) Énumère les exigences qui doivent être remplies pour que les appareils soient compatibles avec la dernière version d'Android.
Suite de tests de compatibilité (CTS) Suite de tests gratuite de qualité commerciale, disponible en téléchargement sur Compatibility Test Suite Downloads .
Personnalisation L’exercice de modification d’une implémentation AOSP pour répondre aux exigences d’un OEM. En règle générale, cela implique l'utilisation de superpositions de ressources pour appliquer des modifications cosmétiques tout en garantissant la conformité avec le CDD, le CTS et toutes les directives pertinentes en matière d'expérience utilisateur.
Applications de héros Un ensemble d'applications clés essentielles à tous les aspects d'Android, notamment les fonctionnalités, l'évolutivité, l'écosystème de développeurs tiers et les utilisateurs finaux. Les applications Hero incluent les notifications, les paramètres, les médias et le centre de communication/numéroteur. Les implémentations AOSP correspondantes doivent être de qualité production.
Superpositions de ressources Pour affecter le rendu de l'interface utilisateur, utilisez ce mécanisme pour remplacer les couleurs, modifier les dimensions, activer le dessin et appliquer des ressources de mise en page soit au moment de la compilation (le plus courant), soit au moment de l'exécution (Runtime Resource Overlays (RRO)).
Interface utilisateur du système Interface utilisateur en dehors d'une application appartenant au système, telle que la barre de navigation, la barre d'état, l'écran de verrouillage et la boîte de dialogue de volume.
Thème Une collection de couleurs et de styles utilisés pour déterminer l’apparence des composants et des applications qui héritent du thème.
Expérience utilisateur (UX) Le domaine de la conception d’interface utilisateur (UI) et sa convivialité.

Personnalisation

La mise en œuvre AOSP de l'interface utilisateur système et d'autres applications système de base constitue une base solide pour démarrer le processus de développement de l'IHM. L'exercice consistant à modifier la mise en œuvre de l'AOSP (principalement via l'utilisation de superpositions de ressources) pour répondre aux exigences de marque, commerciales et juridiques d'un OEM est appelé personnalisation .

Bien que le système global soit conçu et construit pour être flexible, différents composants devraient être personnalisés à différents degrés :

  • Interface utilisateur du système. L'OEM peut personnaliser ou remplacer l'implémentation de l'AOSP dans les limites imposées par le CDD et le CTS et toute autre directive UX applicable.

  • Applications système non-héros (également connues sous le nom de référence ) . Les OEM peuvent personnaliser ou remplacer l’implémentation AOSP.

  • Applications de héros . Chaque application est livrée avec un ensemble de directives de personnalisation détaillées. Les OEM sont fortement encouragés à utiliser l’implémentation AOSP, puis à la personnaliser dans les limites imposées par ces directives.

Configuration de la densité

Pour garantir que les éléments de l'interface utilisateur s'affichent correctement compte tenu de la configuration d'affichage physique, la propriété de densité doit être définie sur le compartiment ( Display Metrics ) qui correspond le plus à la densité physique, comme cette entrée dans le fichier de build :

PRODUCT_PROPERTY_OVERRIDES := \
        ro.sf.lcd_density=160

Moteur de restrictions UX

CarUxRestrictionsManager fournit un crochet permettant aux applications d'écouter les changements liés à l'état de conduite afin de modifier l'expérience utilisateur de manière appropriée. Les OEM peuvent superposer le fichier de configuration dans packages/services/Car/service/res/xml/car_ux_restrictions_map.xml pour affecter le comportement du système.

Thème système

Le thème qui prescrit l'ensemble d'éléments par défaut à l'échelle du système, tels que les couleurs et les styles de texte, est DeviceDefault . Les OEM sont encouragés à démarrer le processus global de personnalisation en modifiant le thème DeviceDefault. Par défaut, l’interface utilisateur du système et toutes les applications système d’AOSP héritent de ce thème. Les applications système développées par les OEM sont également encouragées à hériter de DeviceDefault. Les applications développées par des tiers ne devraient pas hériter de DeviceDefault mais utiliser Theme.Car fourni dans la bibliothèque androidx.car . Les fichiers se trouvent comme suit :

  • Cœur . /frameworks/base/core/res/res/values/themes_device_defaults.xml
  • Couleurs . /frameworks/base/core/res/res/values/colors_car.xml
  • Modes . /frameworks/base/core/res/res/values/styles_car.xml
  • Superposition de voiture.
    /packages/services/Car/car_product/overlay/.../values/themes_device_defaults.xml

Les constructeurs OEM devraient disposer d'une structure de superposition parallèle au répertoire car_product dans leur répertoire de fournisseurs, qui étend davantage la superposition car_product .

Application Aire de jeux thématique

Cette application rationalise le processus de personnalisation du thème DeviceDefault en visualisant tous les attributs du thème en un seul endroit. De plus, en comparant le rendu de certains styles dans cette application par rapport à d'autres applications système, les développeurs peuvent rapidement déboguer les problèmes de thème. Cette application est disponible sur :

  /packages/services/Car/tests/ThemePlayground

Interface utilisateur du système

L'interface utilisateur du système inclut toute l'interface utilisateur sous /frameworks/base , principalement dans /frameworks/base/packages/CarSystemUI . Cela inclut la barre de navigation, la barre d'état, l'écran de verrouillage, la boîte de dialogue de volume, les toasts, le sélecteur d'utilisateur et les boîtes de dialogue d'autorisation. Les OEM peuvent personnaliser considérablement les composants de l'interface utilisateur du système via des superpositions de ressources et des thèmes, à condition que chacun respecte les exigences du CDD, du CTS et des autres directives UX applicables.

Applications système

Android Automotive comprend un ensemble d'applications système de base essentielles à la fonctionnalité globale du système. Parmi celles-ci, le Centre de communication, les Médias, les Notifications et les Paramètres sont considérés comme des applications phares .

  • Centre de communications
  • CVC
  • IME (clavier)
  • Lanceur (écran d'accueil)
  • Lecteur multimédia local
  • Médias
  • Messager
  • Notifications
  • Radio
  • Paramètres

Écran d'accueil

L'écran d'accueil, connu sous le nom de Car Launcher , est la page d'accueil de l'expérience IHM. L'implémentation AOSP sert uniquement de référence et les OEM sont censés remplacer l'implémentation par la leur, qui combine souvent la navigation, la lecture multimédia, la communication et d'autres états du système, selon les besoins. Souvent, l'application Car Launcher affiche les applications disponibles sur le système. Pour savoir comment gérer les événements tels que les événements récents, les modifications de packages et les applications sans tête (aucune activité de lancement), consultez l'implémentation de référence.

Notifications

Les notifications font partie intégrante du système d'exploitation Android et les mêmes constructions (y compris la notification tête haute, la liste/centre de notification, les API de notification, le classement et les actions en ligne) ont été incluses dans Android Automotive. Pour plus de détails, consultez la Présentation des notifications du terminal mobile. Pour optimiser les cas d'utilisation automobile, les modifications suivantes ont été apportées (par rapport à la pile de notifications portable) :

  • Réduction du contenu global des notifications visible pour les utilisateurs. Suppression de la lecture multimédia en cours, de la navigation en cours et des notifications de service de premier plan « sans importance » (importance de FAIBLE et inférieure) des applications système de la liste/du centre de notification, étant entendu que ces notifications sont soit rendues redondantes (par exemple, un cluster affichant l'état du média ) ou ne sont pas utiles.

  • Suppression des contrôles contextuels complexes (tels que les contrôles basés sur les appuis longs et les balayages).

  • Respecter la configuration du moteur de restrictions UX.

    • L'aperçu du contenu des notifications de messagerie peut être masqué en fonction de l'état du lecteur.
    • Toutes les chaînes sont limitées à la longueur maximale.
  • Ajout de nouvelles catégories de notification spécifiquement pour les voitures sous Android 9, disponibles uniquement pour les applications système groupées exécutées sous android.uid.system .

  • CATEGORY_CAR_EMERGENCY . Classé en haut de la liste des notifications. Contourne les contrôles Ne pas déranger (NPD).

  • CATEGORY_CAR_WARNING . Classé en dessous de l'urgence et au-dessus des autres (contourne le MDN).
  • CATEGORY_CAR_INFORMATION . Classé avec le reste des notifications en fonction de « l'importance » et de la récence.

La mise en œuvre de bout en bout de la pile de notification, des API de notification à l'interface utilisateur, est considérée comme une application héroïque . Pour garantir une interopérabilité cohérente des API sur tous les HU et maximiser la mise à niveau, les OEM sont fortement encouragés à adopter la mise en œuvre de l'AOSP, puis à la personnaliser à la légère.

Personnalisation

Le thème standard DeviceDefault et les superpositions de ressources s’appliquent. Un nombre très limité de boutons de personnalisation comportementale sont disponibles sur :

packages/apps/Car/Notification/res/values/config.xml

Paramètres

L'application Paramètres ( Paramètres de la voiture ) est l'une des applications phares qui expose des boutons que l'utilisateur peut utiliser pour configurer certains aspects du système d'exploitation Android et du reste de la voiture. L'application Paramètres expose plus de 200 fonctionnalités du système d'exploitation, qui sont étroitement liées à chaque version majeure d'Android. Pour permettre l'évolutivité et éviter la fragmentation, les OEM sont fortement encouragés à adopter l'implémentation AOSP, puis à la personnaliser (au lieu de bifurquer l'implémentation).

Personnalisation

L'application Paramètres prend en compte la personnalisation et expose plusieurs pistes de personnalisation.

  • Thématisation. Permet la personnalisation visuelle de la manière dont chaque type d'objet Préférence doit être rendu, notamment :

    • Preference.DeviceDefault.CheckBoxPreference

    • Preference.DeviceDefault.DialogPreference.EditTextPreference

  • Personnalisation de la hiérarchie. Pour activer le :

    • Lancez-vous dans un fragment racine arbitraire, superposez la valeur de config_settings_hierarchy_root_fragment dans le fichier intitulé Settings/res/values/config.xml

    • Personnalisation des éléments tels que l'ordre, le regroupement, le texte et les icônes, superposition Settings/res/xml/*.xml

  • Injection statique. Lors de la configuration d'un projet de superposition, les OEM peuvent ajouter des écrans propriétaires en définissant puis en ajoutant les classes Fragment et Controller supplémentaires à la hiérarchie.

  • Injection dynamique . Si une application distincte ( apk ) héberge un écran Paramètres qui doit être lié à l'application Paramètres principale, l'application distincte peut être injectée dynamiquement. Pour plus d'informations, consultez Préférences dynamiques .

Médias

Media est une application phare qui offre une expérience utilisateur frontale au nom des applications multimédias qui implémentent les API MediaSession et MediaBrowser . Les applications multimédias peuvent être des applications tierces (telles que Spotify et Pandora) ainsi que d'autres sources multimédias, telles que le streaming Bluetooth (BT) et les médias locaux.

Des centaines d'applications multimédias sont disponibles dans Android Auto ( Projection ), qui implémentent toutes ces API multimédias comme décrit dans Fournir une lecture audio pour Auto . Les API multimédia évoluent avec chaque version majeure d'Android et avec les versions de la bibliothèque Androidx . Pour garantir l'interopérabilité des API entre toutes les applications multimédias et les futures versions d'Android, les OEM sont fortement encouragés à adopter l'implémentation AOSP, puis à la personnaliser.

Personnalisation

La thématique standard via le thème DeviceDefault s'applique également aux médias. De plus, une personnalisation plus poussée de l'apparence est possible grâce aux superpositions de ressources, à condition que la personnalisation reste dans les limites des directives UX.

Supports USB et sources multimédias

Dans la mesure du possible, il est fortement recommandé que ces sources multimédias soient connectées à Media via une implémentation des API MediaSession et MediaBrowser (cela est vrai pour toute application multimédia tierce). Voir l'application LocalMediaPlayer dans l'AOSP. Cette application affiche les fichiers multimédias locaux et s'affiche en tant que source dans Media.