Przegląd interfejsu HMI

Android Automotive to samochodowa platforma informacyjno-rozrywkowa dostarczana w ramach projektu Android Open Source Project (AOSP). Artykuły w tym temacie przedstawiają kluczowe koncepcje i składniki dostarczane przez interfejs użytkownika systemu samochodowego Android i podstawowe aplikacje potrzebne do zbudowania skutecznego systemu interfejsu człowiek-maszyna (HMI) dla producentów OEM, programistów innych firm i użytkowników końcowych.

  • Przewodnik integracji hosta AOSP . Host aplikacji umożliwia aplikacjom samochodowym 3P renderowanie komponentów interfejsu użytkownika (UI) w stylu OEM w jego imieniu.
  • Struktura ustawień samochodu . Ustawienia samochodu zapewniają skoncentrowany na samochodzie wizualny interfejs użytkownika, podstawowe optymalizacje rozproszenia uwagi kierowcy i dodatkowe punkty wejścia do dostosowywania dla producentów OEM.
  • Przewodnik integracji biblioteki interfejsu użytkownika samochodu . Biblioteka interfejsu użytkownika samochodu zapewnia strukturę rozwoju interfejsu użytkownika, aby umożliwić wszystkim aplikacjom obecnym w samochodzie zachowanie spójności i dostosowanie.
  • Dostosuj ikony systemowe paska stanu . Pasek stanu jest składnikiem interfejsu użytkownika systemu Android, który służy do ciągłego wyświetlania użytkownikom ważnych informacji. Dowiedz się, jak dostosować ikony systemowe paska stanu.
  • Powiadomienia Heads-Up . Dowiedz się, jak dostosować powiadomienia Heads-Up.
  • Dialer . Użyj tej aplikacji systemowej na Androida, aby wdrożyć zoptymalizowane środowisko (DO) dla połączeń Bluetooth, przeglądania kontaktów i zarządzania połączeniami.
  • Media . Za pomocą kilku ustawień i usługi programiści mogą rozszerzyć istniejące aplikacje multimedialne. Chociaż aplikacje muszą być zgodne z szablonem Automotive Media, programiści mogą dostosowywać kolory szablonów, czcionki, ikony i nie tylko, aby stworzyć markowe środowisko.
  • Powiadomienia . Dowiedz się, jak zmienić wygląd i konfiguracje powiadomień.

Terminologia

Te terminy są używane w HMI i powiązanych artykułach:

Termin Definicja
Podstawowe aplikacje Kluczowy zestaw aplikacji krytycznych dla funkcjonalności systemu, w tym Ustawienia, Radio, HVAC, Media, Dialer i Klawiatura.
Dokument definicji zgodności (CDD) Wylicza wymagania, które muszą być spełnione, aby urządzenia były zgodne z najnowszą wersją systemu Android.
Zestaw testów zgodności (CTS) Bezpłatny, komercyjny pakiet testowy, dostępny do pobrania w Compatibility Test Suite Downloads .
Dostosowywanie Ćwiczenie polegające na modyfikowaniu implementacji AOSP w celu spełnienia wymagań producenta OEM. Zazwyczaj wiąże się to z użyciem nakładek zasobów w celu wprowadzenia kosmetycznych zmian, przy jednoczesnym zapewnieniu zgodności z CDD, CTS i wszystkimi odpowiednimi wytycznymi dotyczącymi obsługi użytkownika.
Aplikacje bohaterów Zestaw kluczowych aplikacji o kluczowym znaczeniu dla wszystkich aspektów Androida, w tym funkcjonalności, możliwości uaktualniania, ekosystemu programistów zewnętrznych i użytkowników końcowych. Aplikacje Hero obejmują Powiadomienia, Ustawienia, Media i Centrum Komunikacyjne/Dialer. Odpowiednie wdrożenia AOSP powinny charakteryzować się jakością produkcyjną.
Nakładki zasobów Aby wpłynąć na renderowanie interfejsu użytkownika, użyj tego mechanizmu do zamiany kolorów, zmiany wymiarów, włączenia rysowania i zastosowania zasobów układu w czasie kompilacji (najczęściej) lub w czasie wykonywania (nakładki zasobów środowiska wykonawczego (RRO)).
Interfejs systemu Interfejs użytkownika poza aplikacją należącą do systemu, taki jak pasek nawigacji, pasek stanu, ekran blokady i okno dialogowe głośności.
Temat Zbiór kolorów i stylów używanych do określania wyglądu i działania składników i aplikacji, które dziedziczą motyw.
Doświadczenie użytkownika (UX) Dziedzina projektowania interfejsu użytkownika (UI) i jego użyteczności.

Dostosowywanie

Implementacja AOSP interfejsu użytkownika systemu i innych podstawowych aplikacji systemowych stanowi mocną podstawę do rozpoczęcia procesu rozwoju HMI. Ćwiczenie polegające na modyfikowaniu implementacji AOSP (głównie poprzez wykorzystanie nakładek zasobów) w celu spełnienia wymagań brandingowych, biznesowych i prawnych producenta OEM jest określane jako dostosowywanie .

Chociaż cały system jest zaprojektowany i zbudowany tak, aby był elastyczny, oczekuje się, że różne komponenty będą dostosowywane w różnym stopniu:

  • Interfejs systemu. OEM może dostosować lub zastąpić implementację AOSP w granicach wyznaczonych przez CDD i CTS oraz wszelkie inne obowiązujące wytyczne UX.

  • Aplikacje systemowe niebędące bohaterami (znane również jako referencje ) . Producenci OEM mogą dostosować lub zastąpić implementację AOSP.

  • Aplikacje dla bohaterów . Każda aplikacja zawiera zestaw szczegółowych wskazówek dotyczących dostosowywania. Zdecydowanie zachęca się producentów OEM do korzystania z implementacji AOSP, a następnie dostosowywania jej w granicach wyznaczonych przez te wytyczne.

Konfiguracja gęstości

Aby zapewnić prawidłowe renderowanie elementów interfejsu użytkownika przy fizycznej konfiguracji wyświetlania, właściwość Density musi być ustawiona na zasobnik ( Display Metrics ), który najbardziej odpowiada gęstości fizycznej, na przykład ten wpis w pliku kompilacji:

PRODUCT_PROPERTY_OVERRIDES := \
        ro.sf.lcd_density=160

Silnik ograniczeń UX

CarUxRestrictionsManager zapewnia zaczep dla aplikacji do nasłuchiwania zmian związanych ze stanem jazdy, aby odpowiednio zmodyfikować środowisko użytkownika. Producenci OEM mogą nałożyć plik konfiguracyjny na packages/services/Car/service/res/xml/car_ux_restrictions_map.xml , aby wpłynąć na zachowanie systemu.

Motyw systemu

Motywem, który zaleca systemowy domyślny zestaw elementów, takich jak kolory i style tekstu, jest DeviceDefault . Zachęcamy producentów OEM do rozpoczęcia ogólnego procesu dostosowywania poprzez modyfikację motywu DeviceDefault. Domyślnie interfejs użytkownika systemu i wszystkie aplikacje systemowe w AOSP dziedziczą po tym motywie. Aplikacje systemowe opracowane przez producentów OEM są również zachęcane do dziedziczenia DeviceDefault. Oczekuje się, że aplikacje opracowane przez inne firmy nie będą dziedziczyć DeviceDefault, ale zamiast tego będą używać Theme.Car z biblioteki androidx.car . Pliki znajdują się w następujący sposób:

  • Rdzeń . /frameworks/base/core/res/res/values/themes_device_defaults.xml
  • Kolory . /frameworks/base/core/res/res/values/colors_car.xml
  • Style . /frameworks/base/core/res/res/values/styles_car.xml
  • Nakładka na samochód.
    /packages/services/Car/car_product/overlay/.../values/themes_device_defaults.xml

Oczekuje się, że producenci OEM będą mieli równoległą strukturę nakładek do katalogu car_product w ich katalogu dostawców, co dodatkowo rozszerza nakładkę car_product .

Motyw aplikacji Plac zabaw

Ta aplikacja usprawnia proces dostosowywania motywu DeviceDefault , wizualizując wszystkie atrybuty motywu w jednym miejscu. Ponadto, porównując sposób renderowania niektórych stylów w tej aplikacji z innymi aplikacjami systemowymi, programiści mogą szybko debugować problemy z motywami. Ta aplikacja jest dostępna pod adresem:

  /packages/services/Car/tests/ThemePlayground

Interfejs systemu

Systemowy interfejs użytkownika zawiera cały interfejs użytkownika w /frameworks/base , głównie w /frameworks/base/packages/CarSystemUI . Obejmuje to pasek nawigacji, pasek stanu, ekran blokady, okno dialogowe głośności, tosty, selektor użytkownika i okna dialogowe uprawnień. Producenci OEM mogą w dużym stopniu dostosowywać składniki interfejsu użytkownika systemu za pomocą nakładek zasobów i motywów, pod warunkiem, że każdy z nich spełnia wymagania CDD, CTS i innych obowiązujących wytycznych dotyczących UX.

Aplikacje systemowe

Android Automotive zawiera zestaw podstawowych aplikacji systemowych o krytycznym znaczeniu dla ogólnej funkcjonalności systemu. Spośród nich Centrum komunikacyjne, Media, Powiadomienia i Ustawienia są uważane za aplikacje bohaterów .

  • Centrum Komunikacyjne
  • HVAC
  • IME (klawiatura)
  • Launcher (ekran główny)
  • Lokalny odtwarzacz multimedialny
  • Głoska bezdźwięczna
  • Posłaniec
  • Powiadomienia
  • Radio
  • Ustawienia

Pulpit

Ekran główny, znany jako Car Launcher , jest stroną docelową interfejsu HMI. Implementacja AOSP służy tylko jako odniesienie i oczekuje się, że producenci OEM zastąpią implementację własną, która często łączy nawigację, odtwarzanie multimediów, komunikację i inne stany systemu, w razie potrzeby. Często aplikacja Car Launcher wyświetla aplikacje dostępne w systemie. Aby dowiedzieć się, jak radzić sobie ze zdarzeniami, takimi jak ostatnie, zmiany pakietów i aplikacje bezgłowe (brak działania w programie uruchamiającym), zobacz implementację referencyjną.

Powiadomienia

Powiadomienia są integralnym składnikiem systemu operacyjnego Android i te same konstrukcje (w tym powiadomienia heads-up, lista/centrum powiadomień, interfejsy API powiadomień, ranking i działania wbudowane) zostały uwzględnione w Android Automotive. Aby uzyskać szczegółowe informacje, zapoznaj się z Omówieniem powiadomień podręcznych . Aby zoptymalizować przypadki użycia w branży motoryzacyjnej, wprowadzono następujące modyfikacje (w porównaniu ze stosem powiadomień podręcznych):

  • Zmniejszenie ogólnej treści powiadomień widocznej dla użytkowników. Usunięcie trwającego odtwarzania multimediów, bieżącej nawigacji i „nieistotnych” (ważność LOW i niższych) powiadomień o usługach aplikacji systemowych na pierwszym planie z listy/centrum powiadomień, przy założeniu, że te powiadomienia są albo zbędne (np. klaster pokazujący stan multimediów ) lub nie są przydatne.

  • Usunięcie złożonych kontrolek kontekstowych (takich jak kontrolki oparte na długim naciśnięciu i długości przesunięcia).

  • Respektowanie konfiguracji silnika ograniczeń UX.

    • Podgląd treści powiadomień o wiadomościach może być ukryty na podstawie stanu dysku.
    • Wszystkie stringi spięte na max długość.
  • Dodanie nowych kategorii powiadomień specjalnie dla samochodów w systemie Android 9, dostępnych tylko dla dołączonych aplikacji systemowych działających jako android.uid.system .

  • CATEGORY_CAR_EMERGENCY . Umieszczony na górze listy powiadomień. Pomija tryb „Nie przeszkadzać” (DND).

  • CATEGORY_CAR_WARNING . Miejsce poniżej awaryjnego i powyżej innych (omija DND).
  • CATEGORY_CAR_INFORMATION . Ranking z resztą powiadomień na podstawie „ważności” i od niedawna.

Kompleksowa implementacja stosu powiadomień, od interfejsów API powiadomień po interfejs użytkownika, jest uważana za aplikację bohatera . Aby zagwarantować spójną interoperacyjność API we wszystkich jednostkach centralnych i zmaksymalizować możliwości aktualizacji, zdecydowanie zachęca się producentów OEM do podjęcia implementacji AOSP, a następnie jej lekkiego dostosowania.

Dostosowywanie

Obowiązują standardowe nakładki i motywy DeviceDefault. Bardzo ograniczona liczba behawioralnych pokręteł dostosowywania jest dostępna pod adresem:

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

Ustawienia

Aplikacja Ustawienia ( Ustawienia samochodu ) to jedna z aplikacji bohatera , która udostępnia pokrętła, za pomocą których użytkownik może konfigurować aspekty systemu operacyjnego Android i reszty samochodu. Aplikacja Ustawienia udostępnia ponad 200 funkcji systemu operacyjnego, które są ściśle powiązane z każdą główną wersją Androida. Aby umożliwić uaktualnianie i uniknąć fragmentacji, zdecydowanie zachęca się producentów OEM do wdrożenia implementacji AOSP, a następnie jej dostosowania (zamiast rozwidlenia implementacji).

Dostosowywanie

Aplikacja Ustawienia uwzględnia dostosowanie i udostępnia kilka możliwości dostosowania.

  • Tematyka. Umożliwia wizualne dostosowanie sposobu renderowania każdego typu obiektu preferencji, w tym:

    • Preference.DeviceDefault.CheckBoxPreference

    • Preference.DeviceDefault.DialogPreference.EditTextPreference

  • Dostosowywanie hierarchii. Aby włączyć:

    • Uruchom dowolny fragment root, nałóż wartość config_settings_hierarchy_root_fragment w pliku o nazwie Settings/res/values/config.xml

    • Dostosowywanie elementów, takich jak kolejność, grupowanie, tekst i ikony, nakładka Settings/res/xml/*.xml

  • Wtrysk statyczny. Podczas konfigurowania projektu nakładki producenci OEM mogą dodawać własne ekrany, definiując, a następnie dodając do hierarchii dodatkowe klasy fragmentów i kontrolerów.

  • Wtrysk dynamiczny . Jeśli oddzielna aplikacja ( apk ) obsługuje ekran Ustawienia, który należy połączyć z głównej aplikacji Ustawienia, oddzielna aplikacja może zostać dynamicznie wstrzyknięta. Aby uzyskać więcej informacji, zobacz Preferencje dynamiczne .

Głoska bezdźwięczna

Media to aplikacja hero , która zapewnia interfejs użytkownika w imieniu aplikacji multimedialnych, które implementują interfejsy API MediaSession i MediaBrowser . Aplikacjami multimedialnymi mogą być aplikacje innych firm (takie jak Spotify i Pandora), a także inne źródła multimediów, takie jak przesyłanie strumieniowe Bluetooth (BT) i multimedia lokalne.

W Android Auto ( Projekcja ) dostępne są setki aplikacji multimedialnych, z których wszystkie implementują te interfejsy API multimediów zgodnie z opisem w sekcji Zapewnianie odtwarzania dźwięku w trybie Auto . Media API ewoluują wraz z każdym głównym wydaniem Androida oraz z wydaniami biblioteki Androidx . Aby zagwarantować współdziałanie interfejsu API we wszystkich aplikacjach multimedialnych i przyszłych wersjach systemu Android, zdecydowanie zachęca się producentów OEM do wdrożenia implementacji AOSP, a następnie jej dostosowania.

Dostosowywanie

Standardowa kompozycja motywu DeviceDefault dotyczy również multimediów. Ponadto możliwe jest dalsze dostosowywanie wyglądu i działania za pomocą nakładek zasobów, pod warunkiem, że dostosowanie jest zgodne z wytycznymi UX.

Inne aplikacje multimedialne

Nośniki USB i źródła multimediów

W miarę możliwości zdecydowanie zaleca się, aby te źródła multimediów były podłączone do multimediów za pomocą implementacji interfejsów API MediaSession i MediaBrowser (dotyczy to każdej aplikacji multimedialnej innej firmy). Zobacz aplikację LocalMediaPlayer w AOSP. Ta aplikacja wyświetla lokalne pliki multimedialne i jest wyświetlana jako źródło w Media.