Omówienie HMI

Android Automotive to samochodowe rozwiązanie informacyjno-rozrywkowe dostarczane z Androidem Open Source Project (AOSP). Artykuły na ten temat przedstawiają kluczowe pojęcia i ich elementy zapewnia interfejs systemu Android Automotive i podstawowe aplikacje niezbędne do stworzenia System HMI (Machine Interface) dla producentów OEM, programistów zewnętrznych i użytkowników.

  • Przewodnik po integracji hosta AOSP. App Host umożliwia aplikacjom samochodowym innych firm renderowanie komponentów interfejsu użytkownika (UI) stylu OEM w w imieniu Google.
  • Struktura ustawień samochodu. Ustawienia samochodu to interfejs API dostosowany do samochodu, który pozwala łatwo rozpraszać uwagę kierowcy. optymalizacje i dodatkowe punkty wejścia dostosowania dla producentów OEM.
  • Przewodnik po integracji biblioteki interfejsu Car UI Biblioteka UI samochodu to platforma programistyczna interfejsu, która umożliwia korzystanie ze wszystkich aplikacji aby uzyskać spójność i możliwości dostosowania.
  • Dostosowywanie ikon systemowych na pasku stanu Pasek stanu to komponent interfejsu systemu Android, który służy do trwałego wyświetlania ważne informacje dla użytkowników. Dowiedz się, jak dostosować ikony systemowe na pasku stanu.
  • Powiadomienia z ostrzeżeniem. Dowiedz się, jak dostosować funkcję Uważaj na przejściu.
  • Telefon. Użyj tej aplikacji na Androida, aby zaimplementować obsługę Bluetootha zoptymalizowanych pod kątem rozpraszania uwagi połączenia, przeglądanie kontaktów i zarządzanie połączeniami.
  • Multimedia. Wystarczy kilka ustawień i usługę, deweloperzy mogą rozbudowywać istniejące aplikacje do multimediów. Aplikacje muszą spełniać wymagania Automotive Media, deweloperzy mogą dostosować kolory, czcionki, ikony i inne elementy, budują świadomość marki.
  • Powiadomienia. Dowiedz się, jak zmienić wygląd i konfigurację powiadomień.

Terminologia

W HMI i powiązanych artykułach używa się tych terminów:

Termin Definicja
Aplikacje podstawowe Podstawowy zestaw aplikacji niezbędnych do działania systemu, w tym Ustawienia, Radio, Ogrzewanie, wentylacja i klimatyzacja, multimedia, telefon i klawiatura.
Dokument definicji zgodności (CDD) Wymienia wymagania, które muszą zostać spełnione, aby urządzenia były zgodne z najnowszą wersją wersji Androida.
Compatibility Test Suite (CTS) Bezpłatny pakiet komercyjny można pobrać pod adresem Do pobrania z pakietu Compatibility Test Suite.
Dostosowywanie Zmodyfikowanie implementacji AOSP tak, aby spełniała wymagania OEM. Zwykle polega to na stosowaniu nakładek zasobów w celu wprowadzenia kosmetycznych zmian, a także zapewnienie zgodności z wytycznymi CDD i CTS oraz ze wszystkimi odpowiednimi wskazówkami dotyczącymi wygody użytkownika.
Aplikacje okolicznościowe Zestaw kluczowych aplikacji o znaczeniu krytycznym dla wszystkich aspektów Androida, w tym funkcji możliwość aktualizacji, ekosystemu zewnętrznych deweloperów i użytkowników. Aplikacje okolicznościowe obejmują Powiadomienia, ustawienia, multimedia oraz centrum komunikacji/Telefon. Odpowiadający jej AOSP powinny zapewniać jakość produkcyjną.
Nakładki zasobów Aby wpłynąć na renderowanie interfejsu, użyj tego mechanizmu do zamiany kolorów, zmienić wymiary, włączyć rysowanie i stosować zasoby układu na czas kompilacji (najczęściej) lub w czasie działania (środowisko wykonawcze Resource Overlays, RRO).
interfejs systemu Interfejs użytkownika poza aplikacją należącą do systemu, np. Pasek nawigacyjny, pasek stanu, ekran blokady i okno głośności.
Motyw Kolekcja kolorów i stylów do określania wyglądu i sposobu działania komponentów i aplikacje, które je dziedziczą.
Wrażenia użytkowników (UX) Pole projektu interfejsu użytkownika i jego użyteczność.

Dostosowywanie

Implementacja interfejsu systemu i innych podstawowych aplikacji systemowych w ramach AOSP który jest podstawą do rozpoczęcia procesu programowania HMI. Zmodyfikowanie AOSP (głównie za pomocą nakładek zasobów) w celu zapewnienia zgodności z zasadami marki OEM, a wymagania prawne to dostosowanie.

Cały system został zaprojektowany z myślą o elastyczności, jednak różne jego komponenty mogą do różnych stopni:

  • Interfejs systemu. OEM może dostosować lub zastąpić implementację AOSP w ograniczeń wynikających z CDD i CTS oraz wszelkich innych obowiązujących wytycznych dotyczących UX.

  • Aplikacje systemowe inne niż główne (nazywane też plikami referencyjnymi). OEM może dostosować lub zastąpić implementację AOSP.

  • Aplikacje okolicznościowe. Każda aplikacja ma zestaw szczegółowych wytycznych dotyczących dostosowywania. Zdecydowanie zalecamy producentom OEM, aby używali implementacji AOSP, a następnie dostosowali ją w oraz granicach wyznaczonych przez te wytyczne.

Konfiguracja gęstości

Aby mieć pewność, że elementy interfejsu będą renderowane prawidłowo przy konfiguracji fizycznego wyświetlacza, właściwość musi być ustawiona na zasobnik (Wyświetlane dane) która jest najbliższa 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 aplikacji przyczepę, która nasłuchuje zmian powiązane ze stanem jazdy. OEM może nakładać plik konfiguracji pod adresem packages/services/Car/service/res/xml/car_ux_restrictions_map.xml co wpływa na działanie systemu.

Motyw systemowy

Motyw, który określa domyślny zestaw elementów w całym systemie, takich jak kolory i style tekstu, to DeviceDefault. Zachęcamy producentów OEM do rozpoczęcia ogólnego procesu dostosowywania przez wprowadzenie motyw DeviceDefault. Domyślnie interfejs systemu i wszystkie aplikacje systemowe w AOSP dziedziczą z elementu ten motyw. Aplikacje systemowe opracowane przez OEM mogą również dziedziczyć ustawienie DeviceDefault. Dostarczane przez inną firmę opracowane aplikacje nie powinny dziedziczyć elementu DeviceDefault, ale korzystają z interfejsu Theme.Car dostępne w bibliotece androidx.car. Pliki są zlokalizowane w taki 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 samochodu.
    /packages/services/Car/car_product/overlay/.../values/themes_device_defaults.xml

Dostawcy OEM powinni mieć strukturę nakładającą się równolegle do katalogu car_product w katalogu dostawców, co rozszerza dodatkowo nakładkę car_product.

Aplikacja Motyw Playground

Ta aplikacja upraszcza proces dostosowywania motywu DeviceDefault przez dzięki wizualizacji wszystkich atrybutów motywów w jednym miejscu. Poza tym porównując sposób, w jaki określone style renderują się w tej w porównaniu z innymi aplikacjami systemowymi, deweloperzy mogą szybko debugować problemy z motywem. Ta aplikacja jest dostępne pod adresem:

  /packages/services/Car/tests/ThemePlayground

interfejs systemu

Interfejs systemu obejmuje cały interfejs użytkownika /frameworks/base, głównie w /frameworks/base/packages/CarSystemUI takich jak pasek nawigacyjny, pasek stanu, ekran blokady, okno głośności, powiadomienia, selektor użytkownika i okna uprawnień. OEM może dostosować za pomocą nakładek zasobów i motywów, o ile każdy z nich znajduje się wymagania CDD, CTS oraz inne obowiązujące wytyczne dotyczące UX.

Aplikacje systemowe

Android Automotive zawiera zestaw podstawowych aplikacji systemowych mających kluczowe znaczenie dla działania całego systemu funkcji. Centrum komunikacyjne, multimedia, powiadomienia i ustawienia uznanych za aplikacje heroiczne.

  • Centrum komunikacji
  • ogrzewanie/wentylacja/klimatyzacja
  • IME (klawiatura)
  • Menu z aplikacjami (ekran główny)
  • Lokalny odtwarzacz multimedialny
  • Multimedia
  • Czat
  • Powiadomienia
  • Radio
  • Ustawienia

Ekran główny

Ekran główny, nazywany programem uruchamiającym samochód, to strona docelowa interfejsu HMI. Implementacja AOSP służy wyłącznie jako plik referencyjny, a producentom OEM oczekuje się zastąpienia z własnymi rozwiązaniami, które często łączą nawigację, odtwarzanie multimediów, komunikację i w razie potrzeby inne stany systemu. Często aplikacja Car Launcher wyświetla dostępne aplikacje w systemie. Aby dowiedzieć się, jak obsługiwać zdarzenia, takie jak ostatnie, zmiany pakietów i bez interfejsu graficznego (brak aktywności w programie uruchamiającym), zobacz implementację referencyjnej.

Powiadomienia

Powiadomienia są integralnym elementem systemu operacyjnego Android i te same konstrukcje (w tym powiadomienie HUD, lista/centrum powiadomień, interfejsy API powiadomień, ranking i działania wbudowane). są dostępne w Androidzie Automotive. Szczegółowe informacje znajdziesz w instrukcji Powiadomienia Przegląd. Aby zoptymalizować przypadki użycia samochodów, wprowadziliśmy te zmiany (w porównaniu z stosu powiadomień na urządzeniu mobilnym):

  • Zmniejszenie ogólnej treści powiadomień widocznych dla użytkowników. Usunięcie trwające odtwarzanie multimediów, ciągła nawigacja i „nieistotne” (znaczenie NISKA i poniżej) powiadomienia usługi działające na pierwszym planie dotyczące aplikacji systemowych z listy/centrum powiadomień, przy czym że powiadomienia te są nadmiarowe (np. klaster pokazujący stan multimediów) lub nie są przydatne.

  • usunięcie złożonych elementów sterujących kontekstem (np. przytrzymanie lub długości przesuwania). ).

  • Przestrzeganie konfiguracji silnika ograniczeń UX.

    • Podgląd treści powiadomienia o wiadomości może być ukryty na podstawie stanu jazdy.
    • Wszystkie ciągi są ograniczone do maksymalnej długości.
  • Dodanie nowych kategorii powiadomień dotyczących samochodów w Android 9 (dostępny tylko w przypadku aplikacji systemowych działających w pakiecie android.uid.system

  • CATEGORY_CAR_EMERGENCY Pozycja na górze listy powiadomień. Pominięcia Ustawienia trybu Nie przeszkadzać.

  • CATEGORY_CAR_WARNING Pozycja w rankingu poniżej wyników alarmowych i powyżej innych (omija tryb nie przeszkadzać).
  • CATEGORY_CAR_INFORMATION Ustalone na podstawie pozostałych powiadomień „ważność” i czas od poprzedniej wizyty.

Kompleksowa implementacja stosu powiadomień – od interfejsów API powiadomień po interfejs użytkownika uznaliśmy za aplikację hero. W celu zagwarantowania spójnej interoperacyjności interfejsów API we wszystkich interfejsach HU aby zmaksymalizować możliwości uaktualnienia, zdecydowanie zalecamy producentom OEM wdrożenie AOSP, a następnie dostosować go do swoich potrzeb.

Dostosowywanie

Obowiązują standardowe motywy i nakładki zasobów. Bardzo ograniczona liczba Pokrętła do personalizacji behawioralnej są dostępne tutaj:

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

Ustawienia

Aplikacja Ustawienia (Ustawienia samochodu) to jedna z głównych aplikacji, które eksponują gałki, za pomocą których użytkownik może skonfigurować różne aspekty systemu operacyjnego Android i pozostałe obszary samochodu. W sekcji Ustawienia udostępnia ponad 200 funkcji systemu operacyjnego, które są ściśle powiązane z poszczególnymi głównymi funkcjami Wersja Androida. Zdecydowanie zachęcamy dostawców OEM, aby umożliwić uaktualnianie i uniknąć fragmentacji wdrożysz wdrożenie AOSP i dostosujesz ją (zamiast rozwidlać implementację).

Dostosowywanie

Aplikacja Ustawienia bierze pod uwagę możliwości dostosowywania i udostępnia kilka opcji i personalizacji reklam.

  • Motywy. Umożliwia wizualne dostosowanie sposobu, w jaki każdy typ obiektu Preference ma być renderowany, w tym:

    • Preference.DeviceDefault.CheckBoxPreference

    • Preference.DeviceDefault.DialogPreference.EditTextPreference

  • Dostosowywanie hierarchii. Aby włączyć:

    • Uruchom we właściwym fragmencie głównym, nałóż wartość config_settings_hierarchy_root_fragment w pliku zatytułowanym Settings/res/values/config.xml

    • Dostosowywanie elementów, np. kolejności, grupowania, tekstu i ikon, nakładka Settings/res/xml/*.xml

  • Wstrzyknięcie statyczne. Podczas konfigurowania projektu nakładki producent OEM może dodawać zastrzeżone ekrany przez zdefiniowanie i dodanie kolejnych klas Fragment i Kontrolera. z hierarchią.

  • Wstrzykiwanie dynamiczne Jeśli w osobnej aplikacji (apk) hostowany jest Ekran ustawień, który musi być połączony z głównej aplikacji Ustawienia. Osobną aplikację można też jest wstrzykiwany dynamicznie. Więcej informacji: Ustawienia dynamiczne.

Multimedia

Media to aplikacja typu hero, która zapewnia interfejs użytkownika w imieniu mediów. które stosują MediaSession. i MediaBrowser API. Aplikacje do multimediów mogą być aplikacjami innych firm (np. Spotify i Pandora) oraz źródeł multimediów, np. strumieniowego przesyłania danych przez Bluetooth (BT) i multimediów lokalnych.

W Androidzie Auto (Projection) dostępne są setki aplikacji do multimediów, z których wszystkie są dostępne. zaimplementuj te interfejsy API multimediów zgodnie z opisem w Włączanie odtwarzania dźwięku w przypadku wersji automatycznej Interfejsy Media API ewoluują w każdej głównej wersji Androida oraz wraz z kolejnymi Biblioteka Androidx. Aby zagwarantować interoperacyjność interfejsów API we wszystkich aplikacjach do multimediów i przyszłych wersjach Androida, producenci OEM zdecydowanie zalecamy użycie implementacji AOSP i jej dostosowanie.

Dostosowywanie

Standardowe motywy zgodne z motywem DeviceDefault mają też zastosowanie do multimediów. Ponadto, oprócz tego, dostosowanie wyglądu i sposobu działania jest możliwe za pomocą nakładek zasobów, pod warunkiem że musi się mieścić w granicach z wytycznych dotyczących UX.

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

W miarę możliwości zalecamy podłączenie tych źródeł multimediów do źródła treści multimedialnych. dzięki implementacji interfejsu MediaSession i MediaBrowser interfejsów API (dotyczy to każdej aplikacji do multimediów innych firm). Zobacz aplikację LocalMediaPlayer w AOSP. Ta aplikacja wyświetla lokalne pliki multimedialne i wyświetla się jako źródło w sekcji Multimedia.