HMI-Übersicht

Android Automotive ist eine In-Car-Infotainment-Plattformlösung, die mit dem Android Open Source Project (AOSP) bereitgestellt wird. In den Artikeln in diesem Thema werden die wichtigsten Konzepte und Komponenten vorgestellt, die von der Android Automotive System-Benutzeroberfläche und den Kern-Apps bereitgestellt werden, die zum Aufbau eines effektiven Human Machine Interface (HMI)-Systems für OEMs, Drittentwickler und Endbenutzer erforderlich sind.

  • AOSP-Host-Integrationshandbuch . Der App Host ermöglicht es 3P-Auto-Apps, in seinem Namen Benutzeroberflächenkomponenten (UI) im OEM-Stil zu rendern.
  • Struktur der Fahrzeugeinstellungen . Car Settings bietet eine autozentrierte visuelle Benutzeroberfläche, grundlegende Optimierungen der Fahrerablenkung und zusätzliche Einstiegspunkte für individuelle Anpassungen für OEMs.
  • Integrationshandbuch für die Car-UI-Bibliothek . Die Car UI Library bietet ein UI-Entwicklungsframework, um allen im Auto vorhandenen Apps Konsistenz und Anpassung zu ermöglichen.
  • Passen Sie die Systemsymbole der Statusleiste an . Die Statusleiste ist eine Komponente der Android-System-Benutzeroberfläche, die dazu dient, Benutzern dauerhaft wichtige Informationen anzuzeigen. Erfahren Sie, wie Sie die Systemsymbole der Statusleiste anpassen.
  • Heads-Up-Benachrichtigungen . Erfahren Sie, wie Sie Heads-Up-Benachrichtigungen anpassen.
  • Dialer . Verwenden Sie diese Android-System-App, um ein ablenkungsoptimiertes (DO) Erlebnis für Bluetooth-Anrufe, das Durchsuchen von Kontakten und die Anrufverwaltung zu implementieren.
  • Medien . Mit nur wenigen Einstellungen und einem Dienst können Entwickler bestehende Medien-Apps erweitern. Während Apps der Automotive Media-Vorlage entsprechen müssen, können Entwickler Vorlagenfarben, Schriftarten, Symbole und mehr anpassen, um ein Markenerlebnis zu schaffen.
  • Benachrichtigungen . Erfahren Sie, wie Sie das Erscheinungsbild und die Konfiguration von Benachrichtigungen ändern.

Terminologie

Diese Begriffe werden in HMI und verwandten Artikeln verwendet:

Begriff Definition
Kern-Apps Die wichtigsten Anwendungen, die für die Systemfunktionalität von entscheidender Bedeutung sind, einschließlich Einstellungen, Radio, HVAC, Medien, Wählgerät und Tastatur.
Kompatibilitätsdefinitionsdokument (CDD) Listet die Anforderungen auf, die erfüllt sein müssen, damit Geräte mit der neuesten Android-Version kompatibel sind.
Kompatibilitätstest-Suite (CTS) Kostenlose, kommerzielle Testsuite, zum Download verfügbar unter Compatibility Test Suite Downloads .
Anpassung Die Übung, eine AOSP-Implementierung zu ändern, um die Anforderungen eines OEM zu erfüllen. Typischerweise beinhaltet dies die Verwendung von Ressourcen-Overlays, um kosmetische Änderungen vorzunehmen und gleichzeitig die Einhaltung der CDD, CTS und aller relevanten User Experience-Richtlinien sicherzustellen.
Helden-Apps Eine Reihe wichtiger Apps, die für alle Aspekte von Android von entscheidender Bedeutung sind, einschließlich Funktionalität, Aktualisierbarkeit, Ökosystem für Drittentwickler und Endbenutzer. Zu den Hero-Apps gehören Benachrichtigungen, Einstellungen, Medien und das Kommunikationscenter/Dialer. Entsprechende AOSP-Implementierungen sollten Produktionsqualität aufweisen.
Ressourcen-Overlays Um die Darstellung der Benutzeroberfläche zu beeinflussen, verwenden Sie diesen Mechanismus, um Farben zu ersetzen, Abmessungen zu ändern, das Zeichnen zu ermöglichen und Layoutressourcen entweder zur Kompilierungszeit (am häufigsten) oder zur Laufzeit (Runtime Resource Overlays (RRO)) anzuwenden.
System-Benutzeroberfläche Die Benutzeroberfläche außerhalb einer zum System gehörenden Anwendung, z. B. Navigationsleiste, Statusleiste, Sperrbildschirm und Lautstärkedialog.
Thema Eine Sammlung von Farben und Stilen, die das Erscheinungsbild der Komponenten und Apps bestimmen, die das Design erben.
Benutzererfahrung (UX) Der Bereich des User Interface (UI)-Designs und seiner Benutzerfreundlichkeit.

Anpassung

Die AOSP-Implementierung der System-Benutzeroberfläche und anderer Kernsystemanwendungen dient als solide Grundlage für den Beginn des HMI-Entwicklungsprozesses. Die Änderung der AOSP-Implementierung (hauptsächlich durch die Verwendung von Ressourcen-Overlays), um die Marken-, Geschäfts- und rechtlichen Anforderungen eines OEMs zu erfüllen, wird als Anpassung bezeichnet.

Während das Gesamtsystem flexibel konzipiert und gebaut ist, wird erwartet, dass verschiedene Komponenten in unterschiedlichem Maße angepasst werden:

  • System-Benutzeroberfläche. Der OEM kann die AOSP-Implementierung innerhalb der durch CDD und CTS und alle anderen geltenden UX-Richtlinien vorgegebenen Grenzen anpassen oder ersetzen.

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

  • Helden-Apps . Jede App verfügt über eine Reihe detaillierter Anpassungsrichtlinien. OEMs wird dringend empfohlen, die AOSP-Implementierung zu verwenden und sie dann innerhalb der durch diese Richtlinien vorgegebenen Grenzen anzupassen.

Dichtekonfiguration

Um sicherzustellen, dass UI-Elemente angesichts der physischen Anzeigekonfiguration ordnungsgemäß gerendert werden, muss die Dichteeigenschaft auf den Bucket ( Anzeigemetriken ) festgelegt werden, der der physischen Dichte am ehesten entspricht, wie beispielsweise dieser Eintrag in der Build-Datei:

PRODUCT_PROPERTY_OVERRIDES := \
        ro.sf.lcd_density=160

UX-Einschränkungs-Engine

CarUxRestrictionsManager bietet einen Hook für Anwendungen, die auf Änderungen im Zusammenhang mit dem Fahrzustand warten, um das Benutzererlebnis entsprechend zu ändern. OEMs können die Konfigurationsdatei unter packages/services/Car/service/res/xml/car_ux_restrictions_map.xml überlagern, um das Verhalten des Systems zu beeinflussen.

Systemthema

Das Thema, das den systemweiten Standardsatz an Elementen wie Farben und Textstilen vorschreibt, ist DeviceDefault . OEMs werden aufgefordert, den gesamten Anpassungsprozess durch eine Änderung des DeviceDefault-Designs zu starten. Standardmäßig erben die Systembenutzeroberfläche und alle System-Apps in AOSP von diesem Thema. Von OEMs entwickelte System-Apps werden ebenfalls dazu ermutigt, DeviceDefault zu erben. Von von Drittanbietern entwickelten Apps wird nicht erwartet, dass sie DeviceDefault erben, sondern stattdessen Theme.Car verwenden, das in der androidx.car Bibliothek bereitgestellt wird. Die Dateien befinden sich wie folgt:

  • Kern . /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 über eine parallele Overlay-Struktur zum car_product Verzeichnis in ihrem Lieferantenverzeichnis verfügen, die das car_product Overlay weiter erweitert.

Themenspielplatz-App

Diese App optimiert den Prozess der Anpassung des DeviceDefault Designs, indem sie alle Designattribute an einem Ort visualisiert. Durch den Vergleich der Darstellung bestimmter Stile in dieser App im Vergleich zu anderen System-Apps können Entwickler außerdem Themenprobleme schnell beheben. Diese App ist verfügbar unter:

  /packages/services/Car/tests/ThemePlayground

System-Benutzeroberfläche

Die System-Benutzeroberfläche umfasst die gesamte Benutzeroberfläche unter /frameworks/base , hauptsächlich in /frameworks/base/packages/CarSystemUI . Dazu gehören die Navigationsleiste, die Statusleiste, der Sperrbildschirm, der Lautstärkedialog, Toasts, die Benutzerauswahl und Berechtigungsdialoge. OEMs können die UI-Komponenten des Systems umfassend über Ressourcen-Overlays und Themes anpassen, sofern diese jeweils den Anforderungen von CDD, CTS und anderen geltenden UX-Richtlinien entsprechen.

Systemanwendungen

Android Automotive umfasst eine Reihe von Kernsystemanwendungen, die für die Gesamtsystemfunktionalität von entscheidender Bedeutung sind. Von diesen gelten Kommunikationscenter, Medien, Benachrichtigungen und Einstellungen als herausragende Anwendungen.

  • Kommunikationszentrum
  • HVAC
  • IME (Tastatur)
  • Launcher (Startbildschirm)
  • Lokaler Mediaplayer
  • Medien
  • Bote
  • Benachrichtigungen
  • Radio
  • Einstellungen

Startbildschirm

Der Startbildschirm, bekannt als Car Launcher , ist die Zielseite für das HMI-Erlebnis. Die AOSP-Implementierung dient nur als Referenz und von OEMs wird erwartet, dass sie die Implementierung durch ihre eigene ersetzen, die bei Bedarf häufig Navigation, Medienwiedergabe, Kommunikation und andere Systemzustände kombiniert. Häufig zeigt die Car Launcher-App die auf dem System verfügbaren Anwendungen an. Informationen zum Umgang mit Ereignissen wie aktuellen Ereignissen, Paketänderungen und Headless -Apps (keine Launcher-Aktivität) finden Sie in der Referenzimplementierung.

Benachrichtigungen

Benachrichtigungen sind ein integraler Bestandteil des Android-Betriebssystems und die gleichen Konstrukte (einschließlich Heads-up-Benachrichtigung, Benachrichtigungsliste/-center, Benachrichtigungs-APIs, Ranking und Inline-Aktionen) wurden in Android Automotive integriert. Einzelheiten finden Sie in der Übersicht über Handheld-Benachrichtigungen . Um Anwendungsfälle im Automobilbereich zu optimieren, wurden die folgenden Änderungen vorgenommen (im Vergleich zum Handheld-Benachrichtigungsstapel):

  • Reduzierung des gesamten für Benutzer sichtbaren Benachrichtigungsinhalts. Entfernung der laufenden Medienwiedergabe, der laufenden Navigation und „unwichtiger“ (Wichtigkeit von NIEDRIG und niedriger) Vordergrunddienstbenachrichtigungen von System-Apps aus der Benachrichtigungsliste/-mitte, mit der Maßgabe, dass diese Benachrichtigungen entweder überflüssig gemacht werden (z. B. Cluster, der den Medienstatus anzeigt). ) oder nicht nützlich sind.

  • Entfernung komplexer kontextbezogener Steuerelemente (z. B. langes Drücken und auf der Wischlänge basierende Steuerelemente).

  • Respektieren Sie die Konfiguration der UX-Einschränkungs-Engine.

    • Die Vorschau des Inhalts der Nachrichtenbenachrichtigung kann je nach Laufwerksstatus ausgeblendet sein.
    • Alle Saiten sind auf die maximale Länge begrenzt.
  • Hinzufügung neuer Benachrichtigungskategorien speziell für Autos in Android 9, nur verfügbar für gebündelte System-Apps, die als android.uid.system ausgeführt werden.

  • CATEGORY_CAR_EMERGENCY . An der Spitze der Benachrichtigungsliste platziert. Umgeht die DND-Funktion (Do-Not-Disturb).

  • CATEGORY_CAR_WARNING . Rang unter dem Notfall und über anderen (umgeht DND).
  • CATEGORY_CAR_INFORMATION . Rangfolge mit den übrigen Benachrichtigungen basierend auf „Wichtigkeit“ und Aktualität.

Die End-to-End-Implementierung des Benachrichtigungsstapels, von den Benachrichtigungs-APIs bis zur Benutzeroberfläche, gilt als Hero- App. Um eine konsistente API-Interoperabilität über alle HUs hinweg zu gewährleisten und die Aufrüstbarkeit zu maximieren, wird OEMs dringend empfohlen, die AOSP-Implementierung zu übernehmen und sie dann leicht anzupassen.

Anpassung

Es gelten die standardmäßigen DeviceDefault-Designs und Ressourcen-Overlays. Eine sehr begrenzte Anzahl von Verhaltensanpassungsknöpfen ist verfügbar unter:

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

Einstellungen

Die Anwendung „Einstellungen“ ( Car Settings ) ist eine der Helden- Apps, die Knöpfe bereitstellt, mit denen der Benutzer Aspekte des Android-Betriebssystems und des restlichen Autos konfigurieren kann. Die Anwendung „Einstellungen“ stellt mehr als 200 Funktionen des Betriebssystems zur Verfügung, die eng mit jeder größeren Android-Version verknüpft sind. Um die Aktualisierbarkeit zu ermöglichen und eine Fragmentierung zu vermeiden, wird OEMs dringend empfohlen, die AOSP-Implementierung zu übernehmen und sie dann anzupassen (anstatt die Implementierung abzuspalten).

Anpassung

Die Anwendung „Einstellungen“ berücksichtigt die Anpassung und bietet mehrere Möglichkeiten zur Anpassung.

  • Thematisierung. Ermöglicht die visuelle Anpassung der Art und Weise, wie jeder Einstellungsobjekttyp gerendert werden soll, einschließlich:

    • Preference.DeviceDefault.CheckBoxPreference

    • Preference.DeviceDefault.DialogPreference.EditTextPreference

  • Anpassung der Hierarchie. So aktivieren Sie Folgendes:

    • Starten Sie ein beliebiges Root-Fragment und überlagern Sie 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. Beim Einrichten eines Overlay-Projekts können OEMs proprietäre Bildschirme hinzufügen, indem sie die zusätzlichen Fragment- und Controller-Klassen definieren und dann zur Hierarchie hinzufügen.

  • Dynamische Einspritzung . Wenn eine separate Anwendung ( apk ) einen Einstellungsbildschirm hostet, der über die Hauptanwendung „Einstellungen“ verlinkt werden muss, kann die separate Anwendung dynamisch eingefügt werden. Weitere Informationen finden Sie unter Dynamische Einstellungen .

Medien

Media ist eine Hero- App, die das Front-End-Benutzererlebnis für Medienanwendungen bereitstellt, die die APIs MediaSession und MediaBrowser implementieren. Medienanwendungen können Apps von Drittanbietern (wie Spotify und Pandora) sowie andere Medienquellen wie Bluetooth (BT)-Streaming und lokale Medien sein.

In Android Auto ( Projektion ) sind Hunderte von Medien-Apps verfügbar, die alle diese Medien-APIs implementieren, wie unter „Bereitstellen der Audiowiedergabe für Auto“ beschrieben. Medien-APIs entwickeln sich mit jeder größeren Android-Version und mit Veröffentlichungen der Androidx- Bibliothek weiter. Um die API-Interoperabilität über alle Medien-Apps und zukünftige Android-Versionen hinweg zu gewährleisten, wird OEMs dringend empfohlen, die AOSP-Implementierung zu übernehmen und sie dann anzupassen.

Anpassung

Die standardmäßige Themengestaltung über das DeviceDefault-Thema gilt auch für Medien. Darüber hinaus ist eine weitere Individualisierung des Look-and-Feel durch Ressourcen-Overlays möglich, sofern die Individualisierung im Rahmen der UX-Richtlinien liegt.

Andere Medien-Apps

USB-Medien und Medienquellen

Soweit möglich wird dringend empfohlen, diese Medienquellen über eine Implementierung der MediaSession- und MediaBrowser -APIs in Media einzubinden (dies gilt für alle Medien-Apps von Drittanbietern). Siehe die LocalMediaPlayer-App im AOSP. Diese App zeigt lokale Mediendateien an und wird als Quelle in Medien angezeigt.