Mit Scalable UI können Sie anspruchsvolle, dynamische Benutzeroberflächen mit mehreren Bereichen 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.
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 einsparen 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 der Einstieg in die benutzerdefinierte Fensterlogik erleichtert.
Bessere Leistung: Die skalierbare Benutzeroberfläche basiert auf einer leistungsstarken Fensterverwaltung, die vollständig in Standard-Android integriert ist. Die Übergänge sind flüssig und können optimiert werden.
Grundbausteine
Durch die skalierbare Benutzeroberfläche ist weniger OEM-spezifischer Code erforderlich, die Aktualisierung wird vereinfacht und das Risiko bei der Einführung wird verringert, da Fallstricke vermieden und Zertifizierungsprobleme reduziert werden.
Der XML-basierte Ansatz löst häufige Probleme bei der Verwaltung komplexer Fenstersysteme in AAOS, z. B. Probleme im Zusammenhang mit präziser Positionierung, Z-Order-Konflikten 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 Feld 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. Der Übergang kann durch ein Event ausgelöst werden und die Animation definieren, die das Feld während der Zustandsänderung durchläuft.
Ein Bereich sollte von seinem aktuellen Status in toVariant wechseln. Bei der Synchronisierung werden alle Übergänge animiert und vom zentralen Window Manager koordiniert.
- Ereignis:Ein Trigger zum Initiieren einer Änderung der Benutzeroberfläche. Ein OEM oder das System kann einen Trigger vordefinieren. Beispiel:
_System_OnHomeEvent,_System_TaskOpenEventoder ein benutzerdefinierter Navigationsbutton.
Bei Scalable UI 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. Diese Änderungen werden an andere System-Apps weitergegeben, damit Inhalte bei Bedarf angepasst werden können. Wenn Sie UI-Beziehungen in XML definieren, haben Sie folgende Möglichkeiten:
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 ScalableUI-Ereignis auslösen, wenn es mit den Attributen event, selectedEvent und unselectedEvent angetippt wird.
event beschreibt das Ereignis, das ausgelöst werden soll, wenn auf die Schaltfläche 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 werden optimale Anwendungsfälle für die skalierbare Benutzeroberfläche beschrieben.
- Dauerhafte Layouts mit mehreren Bereichen erstellen
- Dynamische Home-Szene implementieren
- Kontextbezogene Overlays anwenden
- Komplexe Bereichsinteraktionen entwerfen
Nichtflüchtige 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 Startszene 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 Bereiche 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. Kontext-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
Entwickeln 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.