Omówienie skalowalnego interfejsu

Używaj skalowalnego interfejsu, aby tworzyć zaawansowane, dynamiczne i wielopanelowe środowiska użytkownika w samochodach. Skalowalny interfejs:

  • Zapewnia elastyczny system okien.

  • Minimalizuje ryzyko techniczne, koszty i złożoność związane z pakietem testów zgodności (CTS) w przypadku implementacji interfejsu użytkownika.

Skalowalny interfejs obsługuje szeroką gamę nowoczesnych samochodowych systemów multimedialnych (IVI), które wymagają dynamicznych układów okien, a także tradycyjne rozwiązania ze statycznymi układami okien.

Android 17 wprowadza te funkcje związane z zaawansowanym zarządzaniem oknami:

Przykładowe doświadczenia

Skalowalny interfejs umożliwia nieskończoną liczbę konfiguracji okien. Oto kilka przykładowych scenariuszy utworzonych w celu przetestowania skalowalnego interfejsu:

Tło mapy z pływającymi aplikacjami

Konfiguracja tła mapy z innymi aplikacjami pływającymi na wierzchu.

Tło aplikacji

Konfiguracja tła aplikacji z pływającymi panelami.

Przypięta aplikacja pod innymi aplikacjami

Przypięta aplikacja, np. kontener widżetów, z innymi aplikacjami uruchamianymi na wierzchu.

Warunkowy pływający panel

Warunkowy panel pływający, który pojawia się tylko wtedy, gdy zostaną spełnione określone warunki, np. podczas odtwarzania multimediów lub gdy zostanie wywołany alert.

Przypięta aplikacja bliżej kierowcy

Przypięta aplikacja bliżej kierowcy.

Układ podzielonego ekranu

Układ podzielonego ekranu, na którym 2 aplikacje są wyświetlane obok siebie.

Interaktywny podzielony ekran

Interaktywny układ podzielonego ekranu z możliwością dynamicznej zmiany rozmiaru.

Układ z wieloma kotwicami na dużych ekranach

Układ z wieloma punktami zakotwiczenia przeznaczony na duże ekrany.

Układ ekranu głównego z karuzelą aplikacji.

Korzyści i zgodność

Zalety skalowalnego interfejsu:

  • Mniejsze ryzyko testów: platforma jest wstępnie certyfikowana i zgodna z CTS, co eliminuje główne ryzyko niepowodzenia testów na późnym etapie cyklu programu. Skalowalny interfejs może zaoszczędzić miesiące pracy inżynierów i przyspieszyć osiągnięcie zgodności.

  • Większa elastyczność projektowania: sprawdzona możliwość odtworzenia wielu złożonych, istniejących już modeli okien samochodowych. Skalowalny interfejs użytkownika obsługuje ambitne i wysoce zróżnicowane projekty.

  • Mniejsza złożoność implementacji: abstrakcja do modelu XML wysokiego poziomu opartego na konfiguracji obniża próg wejścia dla niestandardowej logiki okienkowania.

  • Lepsza wydajność: skalowalny interfejs użytkownika działa na wydajnej platformie okien, w pełni zintegrowanej ze standardowym Androidem. Przejścia są płynne, co umożliwia bezpośrednią optymalizację.

Podstawowe elementy

Skalowalny interfejs użytkownika minimalizuje potrzebę stosowania kodu specyficznego dla producenta OEM, ułatwia aktualizację i zmniejsza ryzyko związane z wprowadzaniem na rynek, eliminując pułapki i ograniczając problemy z certyfikacją.

Podejście oparte na XML rozwiązuje typowe problemy związane z zarządzaniem złożonymi systemami okien w AAOS, takie jak precyzyjne pozycjonowanie, konflikty kolejności Z i skupienie aplikacji.

Skalowalny interfejs użytkownika udostępnia te podstawowe elementy.

Panel

Panel to podstawowy prostokątny kontener na ekranie. Każdy panel jest mapowany na osobne zadanie główne, co umożliwia niezależne zarządzanie. Panel może zawierać zadania aplikacji (TaskPanel) lub treści oparte na widokach, takie jak widżety (DecorPanel). Więcej informacji znajdziesz w artykule Konfigurowanie panelu.

Wariant

Wariant określa konkretny stan wizualny panelu i zawiera właściwości takie jak bounds (pozycja i rozmiar), visibility, layer (kolejność Z) i promień corner. Pojedynczy panel może mieć różne wersje, np. opened, closed lub minimized. Więcej informacji znajdziesz w artykule Używanie wariantu do projektowania stanu wizualnego.

Przejście

Przejście określa, jak panel przechodzi z bieżącego stanu fromVariant do nowego stanu toVariant. Event wywołuje przejście, które określa animację używaną przez panel podczas zmiany stanu. Panel powinien przejść z bieżącego stanu do stanu toVariant. Podczas synchronizacji podstawowy menedżer okien animuje i koordynuje wszystkie przejścia.

  • Zdarzenie: reguła, która inicjuje zmianę interfejsu. Regułę może zdefiniować producent OEM lub system. Może to być na przykład _System_OnHomeEvent,_System_TaskOpenEvent lub naciśnięcie niestandardowego przycisku nawigacji.

Na przykład interfejs skalowalny używa zdarzeń do aktywowania przejść. Te przejścia animują panel z jednego wariantu do drugiego, aby wyświetlać dynamiczne zmiany w interfejsie. Skalowalny interfejs przekazuje te zmiany do innych aplikacji systemowych, aby dostosować treść w razie potrzeby. Definiując relacje interfejsu w XML, możesz:

  • Określanie złożonych zachowań interfejsu: definiowanie złożonych interakcji z interfejsem użytkownika.

  • Rozmieszczanie systemów okien: kontroluj pozycjonowanie i warstwy okien.

  • Wdrażaj motywy wizualne: stosuj spójną identyfikację wizualną i estetykę.

  • Zmniejsz złożoność kodu: zminimalizuj potrzebę tworzenia rozbudowanego kodu niestandardowego.

Więcej informacji znajdziesz w artykule Konfigurowanie przejścia.

Przyciski interfejsu systemu

Oprócz wywoływania intencji CarSystemBarButtons może wywoływać zdarzenie skalowalnego interfejsu, gdy zostanie kliknięty za pomocą atrybutów event, selectedEvent i unselectedEvent.

event opisuje zdarzenie, które ma zostać wywołane po kliknięciu przycisku. Jeśli potrzebujesz bardziej szczegółowej kontroli nad zdarzeniem, użyj atrybutów selectedEvent i unselectedEvent, aby określić zdarzenie, które ma być wywoływane odpowiednio po wybraniu lub odznaczeniu przycisku.

Kiedy wdrażać interfejs systemu

W tej sekcji opisujemy optymalne zastosowania skalowalnego interfejsu.

Tworzenie trwałych układów wielopanelowych

Utwórz środowisko wielostrefowe, w którym różne obszary ekranu są na stałe przeznaczone do określonych funkcji. Może to być np. panel sterowania multimediami, pasek klimatyzacji lub mapa na pełnym ekranie.

Używaj TaskPanels w przypadku aplikacji podstawowych (np. nawigacji) i DecorPanels w przypadku elementów interfejsu, które muszą być umieszczone między TaskPanels.

Wdrażanie dynamicznej sceny w domu

Wdróż scenę Główna składającą się z wielu paneli aplikacji, które są widoczne jednocześnie i interaktywne. Może to być np. mapa, odtwarzacz multimediów lub siatka aplikacji.

Aby przekształcić wszystkie odpowiednie panele w ich warianty domowe opened lub default, skonfiguruj _System_HomeEvent.

Stosowanie nakładek kontekstowych

Umieszczaj elementy interfejsu inne niż aplikacje, takie jak widżety kontekstowe, niestandardowe elementy marki i paski przeciągania, które można animować w koordynacji z zadaniami aplikacji.

Używaj elementu DecorPanels w przypadku wszystkich elementów, które mają charakter wyłącznie dekoracyjny lub służą do hostowania widżetów. Jeśli widżet zawiera w pełni funkcjonalną aplikację, którą można uruchomić, optymalnym rozwiązaniem jest Panel > TaskPanel. Używaj elementu DecorPanels w przypadku elementów interfejsu opartych na widoku, gdy warstwy muszą być zsynchronizowane z warstwami TaskPanel.

Projektowanie złożonych interakcji z panelem

Projektuj zaawansowane działania użytkownika, takie jak dynamiczna zmiana rozmiaru panelu aplikacji czy dostosowywanie widoków zestawu wskaźników na podstawie treści wyświetlanych na głównym ekranie.

Zdefiniuj niestandardowe Events, aby wywoływać określone, niestandardowe Transitions.

Rozszerzanie układów IVI na ujednolicony cyfrowy kokpit

Skalowalny interfejs zarządza wieloma panelami (TaskPanel i DecorPanel) na głównym wyświetlaczu systemu informacyjno-rozrywkowego (display0) na SDV IVI maszynie wirtualnej. Możesz połączyć skalowalny interfejs z bezpieczeństwem wyświetlania, aby aktualizować widoki zestawu wskaźników, gdy zmieni się układ głównego wyświetlacza:

  • Skalowalne działania interfejsu (SDV IVI VM): gdy stan panelu na wyświetlaczu głównym ulega zmianie, skalowalny interfejs może wysłać intencję za pomocą <Action> w xml/scalable_ui_actions.xml, aby powiadomić komponenty klastra o zmianach układu lub trybu. Więcej informacji znajdziesz w artykule o konfigurowaniu działania.
  • DriverUI (SDV IVI VM): działa na wyświetlaczu klastra (display1) jako aplikacja systemowa uruchamiana przez ClusterHomeManager i zbudowana za pomocą automotive-design-compose. DriverUI renderuje treści niezwiązane z bezpieczeństwem (takie jak mapy, multimedia i połączenia telefoniczne) i obsługuje aktualizacje stanu z systemu IVI.
  • Brama SDV w systemie IVI (SDV IVI VM): DriverUI używa SDV Gateway Client do łączenia się z renderem o wysokiej dostępności (HAR) za pomocą gRPC (driverui.proto). DriverUI wysyła aktualizacje stanu klastra (takie jak warianty układu, tokeny motywu i zmiany ustawień regionalnych) wraz z okresowymi komunikatami o stanie.
  • HAR i Monitor bezpieczeństwa (SDV Media VM): działają na osobnej maszynie wirtualnej SDV Media, aby renderować elementy krytyczne dla bezpieczeństwa (takie jak prędkość, bieg, kontrolki, sygnały dźwiękowe i obraz z kamery cofania). Chociaż otrzymuje sygnały o stanie z DriverUI, HAR zachowuje przejrzystość regionów klastra Androida, dzięki czemu treści DriverUI łączą się z nakładkami bezpieczeństwa HAR. Jeśli urządzenie SDV IVI uruchamia się lub jest niedostępne, HAR wyświetla zastępcze symbole z wartościami domyślnymi.
  • Konfiguracja OEM: aby skonfigurować ten flow, skonfiguruj <Event> aktywatory i <Action> intencje w xml/scalable_ui_actions.xml na SDV IVI, zaktualizuj plik projektu Figma i Config.json mapowania sygnałów dla łańcucha narzędzi do projektowania zabezpieczeń oraz zaimplementuj warstwę abstrakcji platformy HAR (PAL) dla docelowego sprzętu.