Übersicht

Mit Scalable UI können Sie anspruchsvolle, dynamische und mehrteilige Benutzeroberflächen für Autos erstellen. Skalierbare Benutzeroberfläche:

  • Bietet ein flexibles Fenstersystem.

  • Minimiert die technischen Risiken, Kosten und Komplexitäten, die durch die Compatibility Test Suite (CTS) für Implementierungen der Benutzeroberfläche entstehen.

Die skalierbare Benutzeroberfläche unterstützt eine Vielzahl moderner IVI-Designs (In-Vehicle Infotainment), die dynamische Fensteranordnungen erfordern.

In Android 17 werden die folgenden Funktionen für die erweiterte Fensterverwaltung eingeführt:

Beispieltests

Die skalierbare Benutzeroberfläche ermöglicht eine unendliche Vielfalt an Fensterkonfigurationen. Hier sind einige Beispielszenarien, die für die skalierbare Benutzeroberfläche erstellt wurden:

Kartenhintergrund mit schwebenden Apps

Eine Kartenhintergrundkonfiguration mit anderen Anwendungen, die darüber schweben.

App-Hintergrund

Eine Konfiguration für den Anwendungs-Hintergrund mit schwebenden Feldern.

Angepinnte App unter anderen Apps

Eine angepinnte Anwendung, z. B. ein Widget-Container, über der andere Anwendungen gestartet werden.

Bedingtes schwebendes Feld

Ein bedingtes schwebendes Feld, das nur angezeigt wird, wenn bestimmte Bedingungen erfüllt sind, z. B. wenn Medien wiedergegeben werden oder eine Benachrichtigung ausgelöst wird.

Angepinnte App in der Nähe des Fahrers

Eine angepinnte App, die sich näher am Fahrer befindet.

Splitscreen-Layout

Ein Splitscreen-Layout, in dem zwei Anwendungen nebeneinander angezeigt werden.

Interaktiver Splitscreen

Ein interaktives Splitscreen-Layout, das dynamische Größenanpassung ermöglicht.

Layout mit mehreren Ankern für große Bildschirme

Ein Layout mit mehreren Ankern, das für große Bildschirme entwickelt wurde.

Ein Startbildschirm-Layout mit einem Anwendungs-Karussell.

Vorteile und Compliance

Vorteile der skalierbaren Benutzeroberfläche:

  • Geringeres Testrisiko: Das Framework ist vorzertifiziert und CTS-konform. Dadurch wird das primäre Risiko von Testfehlern in der späten Phase eines Programmzyklus eliminiert. Mit einer skalierbaren Benutzeroberfläche können Sie monatelange Entwicklungsarbeit sparen und die Compliance beschleunigen.

  • Mehr Designflexibilität: Bewährte Fähigkeit, zahlreiche komplexe bestehende Modelle für Autofenster nachzubilden. Die skalierbare Benutzeroberfläche unterstützt anspruchsvolle und sehr differenzierte Designs.

  • Geringere Implementierungskomplexität: Durch die Abstraktion in ein konfigurationsgesteuertes XML-Modell auf hoher Ebene wird die Einstiegshürde für benutzerdefinierte Fensterungslogik gesenkt.

  • Bessere Leistung: Die skalierbare Benutzeroberfläche basiert auf einem leistungsstarken Windowing-System, das vollständig in Standard-Android integriert ist. Übergänge erfolgen reibungslos und ermöglichen eine direkte Optimierung.

Grundbausteine

Eine skalierbare Benutzeroberfläche minimiert den Bedarf an OEM-spezifischem Code, erleichtert die Aktualisierung und verringert das Risiko bei der Einführung, da Fallstricke vermieden und Zertifizierungsprobleme reduziert werden.

Der XML-basierte Ansatz löst häufige Probleme bei der Verwaltung komplexer Fenstersysteme in Android Automotive OS (AAOS), z. B. präzise Positionierung, Konflikte bei der Z-Reihenfolge und App-Fokus.

Scalable UI bietet diese grundlegenden Bausteine.

Feld

Ein Bereich ist der rechteckige Basiscontainer auf dem Bildschirm. Jedes Feld wird einer dedizierten Stammaufgabe für die unabhängige Verwaltung zugeordnet. Ein Bereich kann App-Aufgaben (TaskPanel) oder ansichtsbasierte Inhalte wie Widgets (DecorPanel) enthalten. Weitere Informationen finden Sie unter Bereich konfigurieren.

Variante

Eine Variante definiert einen bestimmten visuellen Zustand für ein Steuerfeld und enthält Eigenschaften wie bounds (Position und Größe), visibility, layer (Z-Reihenfolge) und corner-Radius. Ein einzelner Bereich kann Varianten haben, z. B. opened, closed oder minimized. Weitere Informationen finden Sie unter Mit einer Variante einen visuellen Status gestalten.

Übergang

Eine Übergangsanimation definiert, wie sich ein Bereich von seinem aktuellen Status fromVariant in einen neuen Status toVariant ändert. Ein Event löst den Übergang aus, der die Animation definiert, die das Feld während der Zustandsänderung verwendet. Ein Bereich sollte von seinem aktuellen Status zu toVariant wechseln. Für die Synchronisierung animiert und koordiniert der zentrale Window Manager alle Übergänge.

  • Ereignis:Ein Trigger zum Initiieren einer Änderung der Benutzeroberfläche. Ein OEM oder das System kann einen Trigger vordefinieren. Beispiel: _System_OnHomeEvent, _System_TaskOpenEvent oder ein benutzerdefinierter Navigationsbutton.

Bei der skalierbaren Benutzeroberfläche werden beispielsweise Ereignisse verwendet, um Übergänge auszulösen. Bei diesen Übergängen wird ein Bereich von einer Variante in eine andere animiert, um dynamische Änderungen in der Benutzeroberfläche darzustellen. Die skalierbare Benutzeroberfläche teilt diese Änderungen anderen System-Apps mit, damit sie Inhalte nach Bedarf anpassen können. Wenn Sie UI-Beziehungen in XML definieren, haben Sie folgende Vorteile:

  • Komplexe UI-Verhaltensweisen angeben:Definieren Sie komplexe Interaktionen der Benutzeroberfläche.

  • Fenstersysteme anordnen:Steuern Sie die Positionierung und Anordnung von Fenstern.

  • Visuelle Themen implementieren:Sorgen Sie für ein einheitliches Branding und eine einheitliche Ästhetik.

  • Codekomplexität reduzieren:Der Bedarf an umfangreicher Entwicklung von benutzerdefiniertem Code wird minimiert.

Weitere Informationen finden Sie unter Übergang konfigurieren.

Schaltflächen der System-UI

Neben dem Auslösen von Intents kann CarSystemBarButtons auch ein Ereignis für die skalierbare Benutzeroberfläche auslösen, wenn es mit den Attributen event, selectedEvent und unselectedEvent angetippt wird.

event beschreibt das Ereignis, das ausgelöst werden soll, wenn auf den Button getippt wird. Wenn eine detailliertere Steuerung eines Ereignisses erforderlich ist, verwenden Sie die Attribute selectedEvent und unselectedEvent, um das Ereignis anzugeben, das ausgelöst werden soll, wenn die Schaltfläche ausgewählt bzw. die Auswahl aufgehoben wird.

Wann sollte die System-UI implementiert werden?

In diesem Abschnitt wird die optimale Verwendung von Scalable UI beschrieben.

Dauerhafte Layouts mit mehreren Bereichen erstellen

Erstellen Sie eine Multizonen-Benutzeroberfläche, in der verschiedene Bereiche des Bildschirms dauerhaft bestimmten Funktionen zugewiesen sind. Dazu gehören beispielsweise spezielle Media-Steuerelemente, ein Klimastreifen oder eine Vollbildkarte.

Verwenden Sie TaskPanels für primäre Apps wie Navigations-Apps und DecorPanels für UI-Elemente in Form von Ansichten, die zwischen TaskPanels platziert werden müssen.

Dynamische Home-Szene implementieren

Implementieren Sie eine Home-Szene, die aus mehreren gleichzeitig sichtbaren und interaktiven App-Feldern besteht. Dazu gehören beispielsweise die Karte, der Mediaplayer und das App-Raster.

Wenn Sie alle relevanten Infofelder auf die opened- oder default-Startseitenvarianten umstellen möchten, konfigurieren Sie _System_HomeEvent.

Kontextbezogene Overlays anwenden

Platzieren Sie UI-Elemente, die nicht zur App gehören, z. B. kontextbezogene Widgets, benutzerdefiniertes Branding und Ziehpunkte, die in Abstimmung mit App-Aufgaben animiert werden können.

Verwenden Sie DecorPanels für alle rein dekorativen Elemente oder Elemente, die Widgets hosten. Wenn ein Widget eine voll funktionsfähige, startbare App hostet, ist ein Panel > TaskPanel optimal. Verwenden Sie DecorPanels für ansichtsbasierte UI-Elemente, wenn die Ebenen mit den TaskPanel-Ebenen synchronisiert werden müssen.

Komplexe Bereichsinteraktionen entwerfen

Entwerfen Sie erweiterte nutzergesteuerte Aktionen, z. B. das dynamische Anpassen der Größe eines App-Bereichs oder das Anpassen der Ansichten des Kombiinstruments basierend auf den Inhalten des Hauptdisplays.

Definieren Sie benutzerdefinierte Events, um bestimmte, nicht systemstandardmäßige Transitions auszulösen.