HMI-Übersicht

Android Automotive ist eine Infotainment-Plattformlösung in Autos, die auf dem Open-Source-Projekt (AOSP): In den Artikeln dieses Themas werden die wichtigsten Konzepte und Komponenten vorgestellt. der Android Automotive System-UI und der wichtigsten Apps, die für die Entwicklung eines effektiven menschlichen HMI-System (Machine Interface) für OEMs, externe Entwickler und Endnutzer

  • AOSP Host Integration Guide (AOSP-Hostintegrationsleitfaden) (in englischer Sprache). Mit dem App Host können Drittanbieter-Auto-Apps die Komponenten der OEM-Benutzeroberfläche (UI) auf ihren
  • Struktur der Autoeinstellungen Die Autoeinstellungen bieten eine auf das Auto zugeschnittene Benutzeroberfläche und können so vom Autofahrer abgelenkt werden. Optimierungen und zusätzliche Einstiegspunkte zur Anpassung für OEMs.
  • Car UI Library Integration Guide. Die Car-UI-Bibliothek bietet ein UI-Entwicklungs-Framework, mit dem alle im um Einheitlichkeit und Anpassung zu erreichen.
  • Passen Sie die Systemsymbole der Statusleiste an. Die Statusleiste ist eine Komponente der Android-System-UI, mit der wichtige Informationen für Nutzende. Hier erfahren Sie, wie Sie die Systemsymbole der Statusleiste anpassen.
  • Vorwarnungsbenachrichtigungen: Informationen zum Anpassen von „Vorsicht“-Benachrichtigungen
  • Telefon Mit dieser Android-System-App kannst du eine Ablenkung von Bluetooth-Geräten optimieren. für Anrufe, Kontaktsuche und Anrufverwaltung.
  • Medien: Mit nur wenigen Einstellungen und einem Dienst, können Entwickler bestehende Medien-Apps erweitern. Apps müssen die Automotive Media-Vorlage können Entwickler Farben, Schriftarten, Symbole und mehr anpassen, um Markenerlebnis zu schaffen.
  • Benachrichtigungen: Weitere Informationen zum Ändern der Darstellung und Konfiguration von Benachrichtigungen

Terminologie

Diese Begriffe werden in HMI und verwandten Artikeln verwendet:

Begriff Definition
Wichtige Apps Die wichtigsten Apps, die für die Systemfunktion wichtig sind, darunter Einstellungen, Radio, HLK, Medien, Telefon und Tastatur.
Kompatibilitätsdefinitionsdokument (CDD) Zählt die Anforderungen auf, die erfüllt sein müssen, damit Geräte mit den neuesten Android-Version.
Kompatibilitätstest-Suite (Compatibility Test Suite, CTS) Kostenlose, kommerzielle Testsuite, die unter folgendem Link heruntergeladen werden kann: Kompatibilitätstest-Suite-Downloads
Personalisierung Die Änderung einer AOSP-Implementierung, um die Anforderungen eines OEM zu erfüllen. Dabei werden in der Regel Ressourcen-Overlays verwendet, um kosmetische Änderungen vorzunehmen, die Einhaltung des CDD, des CTS und aller relevanten Richtlinien zur Nutzererfahrung.
Hero-Apps Eine Reihe wichtiger Apps, die für alle Aspekte von Android wichtig sind, Upgrades, Drittanbieter-Entwicklersysteme und Endnutzer. Zu den Top-Apps gehören „Benachrichtigungen“, „Einstellungen“, „Medien“ und „Kommunikationscenter/Telefon“. Entsprechender AOSP müssen produktionsreif sein.
Ressourcen-Overlays Mit diesem Mechanismus lassen sich Farben, Abmessungen ändern, Zeichnen aktivieren und Layout-Ressourcen anwenden Kompilierungszeit (am häufigsten) oder zur Laufzeit (Runtime Resource Overlays (RRO)) verwendet werden.
System-UI Die Benutzeroberfläche außerhalb einer App, die zum System gehört, z. B. die Navigationsleiste, Statusleiste, Sperrbildschirm und Lautstärkedialogfeld.
Design Eine Sammlung von Farben und Stilen, die verwendet wird, um das Erscheinungsbild der Komponenten zu bestimmen und Apps, die das Design übernehmen.
Nutzererfahrung Der Bereich des UI-Designs und seine Nutzerfreundlichkeit.

Personalisierung

Die AOSP-Implementierung der System-UI und anderer zentraler System-Apps dient als die Grundlage für den Beginn des HMI-Entwicklungsprozesses. Ausübung der Änderung des AOSP Implementierung (hauptsächlich durch die Verwendung von Ressourcen-Overlays) auf das Branding, Geschäft, und rechtliche Erfordernisse wird als Anpassung bezeichnet.

Obwohl das Gesamtsystem flexibel gestaltet und aufgebaut ist, sind verschiedene Komponenten zu erwarten. unterschiedliche Abstufungen:

  • System-UI: Der OEM kann die AOSP-Implementierung innerhalb der der CDD und CTS sowie allen anderen anwendbaren UX-Richtlinien.

  • Nicht-Hero-System-Apps (auch als Referenz bezeichnet): OEMs können oder die AOSP-Implementierung ersetzen.

  • Hero-Apps: Für jede App gibt es eine Reihe von detaillierten Anpassungsrichtlinien. OEMs wird dringend geraten, die AOSP-Implementierung zu verwenden und sie dann im Grenzen dieser Richtlinien ein.

Konfiguration der Dichte

Um sicherzustellen, dass UI-Elemente angesichts der physischen Anzeigekonfiguration korrekt gerendert werden, wurde die Dichte Property muss auf den Bucket festgelegt sein (Messwerte für Displayanzeigen) entspricht, die der physischen Dichte am ehesten entspricht. Ein Beispiel hierfür ist der folgende Eintrag in der Build-Datei:

PRODUCT_PROPERTY_OVERRIDES := \
        ro.sf.lcd_density=160

UX-Einschränkungssystem

CarUxRestrictionsManager bietet einen Hook für Apps, um Änderungen zu erkennen die sich auf den Fahrstatus beziehen, um die Nutzererfahrung entsprechend anzupassen. OEMs können die Konfigurationsdatei unter packages/services/Car/service/res/xml/car_ux_restrictions_map.xml das Verhalten des Systems zu beeinflussen.

Systemdesign

Das Design, das den systemweiten Standardsatz von Elementen wie Farben und Textstilen vorgibt, ist DeviceDefault eingestellt sein. OEMs werden ermutigt, den gesamten Anpassungsprozess zu beginnen, indem sie das Gerätestandard-Design. Standardmäßig übernehmen die System-UI und alle System-Apps in AOSP zu diesem Thema. Für von OEMs entwickelte System-Apps wird außerdem empfohlen, „DeviceDefault“ zu übernehmen. Drittanbieter Bei entwickelten Apps wird nicht erwartet, dass sie DeviceDefault übernehmen, sondern stattdessen Theme.Car verwenden. in der androidx.car-Bibliothek bereitgestellt. Die Dateien befinden sich wie folgt:

  • Core: /frameworks/base/core/res/res/values/themes_device_defaults.xml
  • Farben: /frameworks/base/core/res/res/values/colors_car.xml
  • Stile: /frameworks/base/core/res/res/values/styles_car.xml
  • Auto-Overlay:
    /packages/services/Car/car_product/overlay/.../values/themes_device_defaults.xml

Von OEMs wird erwartet, dass sie eine parallele Overlay-Struktur zum Verzeichnis car_product haben. im Anbieterverzeichnis, um das car_product-Overlay weiter zu erweitern.

Playground App für Design

Diese App optimiert die Anpassung des DeviceDefault-Designs, indem Visualisierung aller Themenattribute an einem Ort. Wenn Sie vergleichen, wie bestimmte Stile App im Vergleich zu anderen System-Apps können Entwickler Probleme mit Themes schnell beheben. Diese App ist verfügbar unter:

  /packages/services/Car/tests/ThemePlayground

System-UI

Die System-UI umfasst die gesamte UI unter /frameworks/base, hauptsächlich in /frameworks/base/packages/CarSystemUI. Dazu gehören die Navigationsleiste, die Statusleiste, Sperrbildschirm, Dialogfeld für Lautstärke, Toasts, Nutzerauswahl und Berechtigungsdialogfeld. OEMs können die System-UI-Komponenten umfassend über Ressourcen-Overlays und Themen, vorausgesetzt, jede befindet sich im Anforderungen des CDD, des CTS und anderer geltender UX-Richtlinien.

System-Apps

Android Automotive umfasst eine Reihe von zentralen System-Apps, die für das Gesamtsystem wichtig sind Funktionalität. Davon sind „Kommunikationscenter“, „Medien“, „Benachrichtigungen“ und „Einstellungen“ als Hero-Apps.

  • Kommunikationscenter
  • Heizung, Lüftung, Klimatechnik (HLK)
  • IME (Tastatur)
  • Launcher (Startbildschirm)
  • Lokaler Mediaplayer
  • Medien
  • Nachrichten
  • Benachrichtigungen
  • Radio
  • Einstellungen

Startbildschirm

Der Startbildschirm, auch Car Launcher genannt, ist die Landingpage für die HMI-Nutzung. Die AOSP-Implementierung dient nur als Referenz und es wird erwartet, dass OEMs die Implementierung, die häufig Navigation, Medienwiedergabe, Kommunikation und je nach Bedarf auch andere Systemstatus verwenden. Oft werden in der Auto Launcher App die verfügbaren Apps auf dem System. Um zu erfahren, wie Sie mit Ereignissen wie Letzten, Paketänderungen und monitorlosen (keine Launcher-Aktivitäten)-Apps finden Sie in der Referenzimplementierung.

Benachrichtigungen

Benachrichtigungen sind ein integraler Bestandteil des Android-Betriebssystems und die gleichen Konstrukte (einschließlich Vorabbenachrichtigung, Benachrichtigungsliste/-zentrale, Notification APIs, Ranking und Inline-Aktionen) in Android Automotive aufgenommen. Weitere Informationen findest du auf der Benachrichtigungen Übersicht. Die folgenden Änderungen wurden vorgenommen (im Vergleich zum Handheld-Benachrichtigungs-Stack):

  • Weniger für Nutzer sichtbare Benachrichtigungsinhalte. Entfernen von laufende Medienwiedergabe, laufende Navigation und „unwichtig“ (Bedeutung von NIEDRIG und niedriger) Benachrichtigungen von System-Apps im Vordergrund aus der Benachrichtigungsliste/der Benachrichtigungszentrale verstehen, dass diese Benachrichtigungen entweder redundant sind (z. B. Cluster mit Medienstatus) oder nicht nützlich sind.

  • Entfernung komplexer kontextabhängiger Steuerelemente (z. B. langes Drücken und Wischlängenbasiert) Steuerelementen).

  • Die Konfiguration des Moduls für UX-Einschränkungen wird respektiert.

    • Die Inhaltsvorschau der Nachrichtenbenachrichtigung wird je nach Drive-Status möglicherweise ausgeblendet.
    • Alle Strings sind auf die maximale Länge beschränkt.
  • Neue Benachrichtigungskategorien speziell für Autos in Android 9, nur für gebündelte System-Apps verfügbar, die als android.uid.system

  • CATEGORY_CAR_EMERGENCY ganz oben in der Benachrichtigungsliste. Umgehungen „Bitte nicht stören“-Steuerelemente.

  • CATEGORY_CAR_WARNING Sie werden unterhalb von „Notfall“ und über anderen rangiert (umgeht „Bitte nicht stören“).
  • CATEGORY_CAR_INFORMATION Das Ranking wurde zu den übrigen Benachrichtigungen eingestuft, basierend auf „Wichtigkeit“ und Aktualität.

Die End-to-End-Implementierung des Benachrichtigungsstacks, von den Notification APIs bis zur Benutzeroberfläche, als Hero-App angesehen werden. um eine konsistente API-Interoperabilität über alle HUs hinweg zu gewährleisten und Upgrade-Möglichkeit maximieren, wird OEMs dringend empfohlen, die AOSP-Implementierung zu übernehmen und dann anpassen.

Personalisierung

Es gelten die standardmäßigen DeviceDefault-Themen und Ressourcen-Overlays. Eine sehr begrenzte Anzahl von Anpassungsmöglichkeiten für das Verhalten finden Sie unter:

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

Einstellungen

Einstellungen (Autoeinstellungen) ist eine der Hero-Apps, bei denen Drehknöpfe, Damit lassen sich Aspekte des Android-Betriebssystems und der Rest des Autos konfigurieren. Einstellungen App bietet mehr als 200 Funktionen im Betriebssystem, die eng mit jeder größeren Android-Release OEMs werden dringend empfohlen, um Upgrades zu ermöglichen und Fragmentierung zu vermeiden. um die AOSP-Implementierung zu übernehmen und anzupassen (anstatt die Implementierung abzuzweigen).

Personalisierung

Die App „Einstellungen“ berücksichtigt die Anpassung und bietet verschiedene Möglichkeiten zum Personalisierung.

  • Design Ermöglicht die visuelle Anpassung der einzelnen Einstellungsobjekttypen zu rendern ist, darunter:

    • Preference.DeviceDefault.CheckBoxPreference

    • Preference.DeviceDefault.DialogPreference.EditTextPreference

  • Hierarchische Anpassung: So aktivieren Sie:

    • Startet in ein beliebiges Stammfragment, überlagert den Wert von config_settings_hierarchy_root_fragment in der Datei mit dem Titel Settings/res/values/config.xml

    • Anpassung von Elementen wie Reihenfolge, Gruppierung, Text und Symbolen, Overlay Settings/res/xml/*.xml

  • Statische Injektion Bei der Einrichtung eines Overlay-Projekts können OEMs proprietäre Bildschirme, indem Sie die zusätzlichen Fragment- und Controller-Klassen definieren und dann hinzufügen an die Hierarchie an.

  • Dynamische Einschleusung Wenn eine separate App (apk) ein Einstellungsbildschirm, der mit der App "Einstellungen" verknüpft werden muss, kann die separate App dynamisch eingeschleust werden. Weitere Informationen finden Sie unter Dynamische Einstellungen:

Medien

Medien sind eine Hero-App, die im Namen von Medien die Frontend-Nutzererfahrung bietet. Apps, die die MediaSession und MediaBrowser APIs Medien-Apps können Drittanbieter-Apps wie Spotify und Pandora sowie andere Medienquellen wie Bluetooth (BT)-Streaming und lokale Medien.

In Android Auto (Projektion) stehen Hunderte von Medien-Apps zur Verfügung. diese Medien-APIs zu implementieren, wie in Audiowiedergabe für die automatische Wiedergabe ermöglichen Medien-APIs entwickeln sich mit jedem großen Android-Release und mit den Releases der Androidx-Bibliothek Um die API-Interoperabilität zwischen allen Medien-Apps und zukünftigen Versionen von Android zu gewährleisten, sind OEMs wird dringend empfohlen, die AOSP-Implementierung zu übernehmen und dann anzupassen.

Personalisierung

Das Standarddesign über das DeviceDefault-Design gilt auch für Medien. Darüber hinaus Das Erscheinungsbild kann mithilfe von Ressourcen-Overlays angepasst werden, sofern die Anpassung nicht innerhalb der UX-Richtlinien.

USB-Medien und -Medienquellen

Sofern möglich, wird dringend empfohlen, diese Medienquellen an Medien anzuschließen. durch Implementierung der MediaSession und MediaBrowser APIs (gilt für alle Medien-Apps von Drittanbietern). Siehe die LocalMediaPlayer-App in der AOSP. Diese App zeigt lokale Mediendateien an und wird als Quelle unter „Medien“ angezeigt.