Android Automotive ma nowy interfejs systemu stworzony specjalnie z myślą o pojazdach. Większość komponentów interfejsu systemu są ściśle połączone z usługami platformy. Interfejs systemu odnosi się do: element wyświetlany na ekranie, który nie jest częścią aplikacji. Interfejs systemu samochodowego (w interfejsie CarSystemUI) to rozszerzenie interfejsu systemu Android (w pakiecie elementów interfejsu systemu). który został dostosowany specjalnie do pojazdów.
Co to jest interfejs systemu?
Komponenty w interfejsie systemu samochodowego to między innymi:
Komponent | Opis |
---|---|
Interfejs ekranu blokady | Ekran, za pomocą którego użytkownicy są uwierzytelniani na określonym koncie użytkownika. |
Pasek nawigacyjny | Pasek systemowy, który możesz umieścić z lewej, dolnej lub prawej strony ekranu. mogą zawierać przyciski aspektów umożliwiające nawigację do różnych aplikacji, przełączanie panelu powiadomień oraz dostarczać elementów sterujących pojazdu (np. systemu ogrzewania/wentylacji/klimatyzacji). Różni się to od interfejsu systemu Android W tym celu pojawiły się przyciski Wstecz, Strona główna i Stos aplikacji. |
Pasek stanu | Pasek systemowy umieszczony wzdłuż ekranu, który pełni funkcję paska nawigacyjnego.
Pasek stanu zapewnia też obsługę:
|
Interfejs systemu | Odnosi się do dowolnego elementu wyświetlanego na ekranie, który nie jest częścią aplikacji. |
Interfejs użytkownika do przełączania użytkowników | Ekran, za pomocą którego użytkownik może wybrać innego użytkownika. |
Interfejs woluminu | Okno wyświetlane, gdy kierowca używa fizycznych przycisków głośności do zmiany głośności na urządzenia. |
Jak działa interfejs systemu?
Interfejs systemu to aplikacja na Androida uruchamiana, gdy urządzenie jest włączone. jest uruchamiana przez refleksję Serwer systemu. Poniżej znajdziesz najważniejsze punkty wejścia w widoczne dla użytkowników aspekty interfejsu systemu. Za pomocą tych komponentów możesz dostosować interfejs systemu Android pod kątem funkcji związanych z samochodami.
config_statusBarComponent
config_systemUIFactoryComponent
CarSystemUI jest rozszerzeniem pakietu interfejsu systemu. Oznacza to, że klasy i zasobów z pakietu UI systemu można używać i zastępować przez pakiet CarSystemUI.
Dostosowywanie interfejsu systemu
Nakładki
Możesz zmodyfikować kod źródłowy Androida, aby dostosować interfejs systemu, komplikuje to stosowanie przyszłych aktualizacji Androida. Zamiast tego Android umożliwia korzystanie z katalogu nakładki, który pozwala zastąpić pliki zasobów bez na modyfikowaniu kodu źródłowego. W systemie kompilacji Androida system nakładek zastępuje pliki w w sposób kontrolowany. Wszystkie zmodyfikowane pliki są wyraźnie oznaczone bez konieczności przechodzenia przez cały drzewo kodu źródłowego AOSP.
Pliki obrazów nad powierzchnią muszą znajdować się w katalogu PRODUCT_PACKAGE_OVERLAYS
i muszą mieć
dokładnie te same podfoldery co pierwotna struktura główna AOSP. Na urządzeniu z Androidem
10 lub więcej, PRODUCT_PACKAGE_OVERLAYS
ma wartość:
PRODUCT_PACKAGE_OVERLAYS := packages/services/Car/car_product/overlay
Interfejs systemu motoryzacyjnego korzysta z zasobów interfejsu systemu oraz pakietów CarSystemUI, co oznacza, że zasoby z każdej lokalizacji można zastąpić nakładkami, które wpływają wygląd i sposób obsługi interfejsu systemu samochodowego.
Aby zastąpić plik, w sekcji
w określonym przez siebie katalogu /overlay
, a następnie umieść w nim zamiennik
katalogu. Aby na przykład zastąpić:
frameworks/base/packages/CarSystemUI/res/layout/super_status_bar.xml
Dodaj zastępczy plik super_status_bar.xml
znajdujący się w:
packages/services/Car/car_product/overlay/frameworks/base/packages/CarSystemUI/res/layout/
Aby zastąpić interfejs frameworks/base/packages/SystemUI/res/values/config.xml
,
(w interfejsie systemu, nie CarSystemUI) dodaj zastępczy plik config.xml
do:
packages/services/Car/car_product/overlay/frameworks/base/packages/SystemUI/res/layout/
lub
packages/services/Car/car_product/overlay/frameworks/base/packages/CarSystemUI/res/layout/
Poniżej znajdziesz opisy 2 głównych punktów wejścia dostosowania.
Pasek nawigacyjny
Interfejs systemu samochodowego może mieć 3 paski nawigacyjne po lewej, dolnej i prawej stronie ekranu. Widoczność każdego paska systemowego jest przełączana w tych konfiguracjach:
config_enableLeftSystemBar
config_enableBottomSystemBar
config_enableRightSystemBar
Każdy słupek ma stan udostępniony i nieudostępniony, który można dostosować, nakładając na siebie odpowiednie pliki układu:
car_left_system_bar.xml
car_left_system_bar_unprovisioned.xml
car_system_bar.xml
(układ dolnego paska nawigacyjnego)car_system_bar_unprovisioned.xml
car_right_system_bar.xml
car_right_system_bar_unprovisioned.xml
Te układy muszą zawierać
com.android.systemui.car.systembar.CarSystemBarView
na najwyższym poziomie, które mogą
nie uwzględnia innych koniecznych widoków. Przyciski na paskach nawigacyjnych można dodać za pomocą
com.android.systemui.car.systembar.CarSystemBarButton
Liczba ta jest zwiększona w CarSystemBar#createSystemBar
,
czy urządzenie jest prawidłowo obsługiwane przez danego użytkownika.
Pasek postępu
Potraktuj pasek stanu jak pasek nawigacyjny z dodatkowymi funkcjami. W przeciwieństwie do nawigacji pasek stanu nie zawiera flagi do jego wyłączenia. Pasek stanu możesz modyfikować za pomocą:
car_top_navigation_bar.xml
car_top_navigation_bar_unprovisioned.xml
Te układy muszą zawierać com.android.systemui.statusbar.car.CarNavigationBarView
na najwyższym poziomie. Na pasku stanu znajdują się ikony stanu. Aby zmienić rozmiar ikony, przeskaluj
jednolicie z odpowiednim współczynnikiem skali, zamiast określać konkretny rozmiar. Na przykład w nakładce
/overlay/frameworks/base/packages/CarSystemUI/res/values/dimens.xml
, dodaj
następujące wymiary, aby podwoić rozmiar ikon:
<resources> <!-- The amount by which to scale up the status bar icons.--> <item name="status_bar_icon_scale_factor" format="float" type="dimen">2</item> </resources>
Pasek stanu znajduje się w specjalnej warstwie okien, która zawiera też
panel powiadomień, przełącznik użytkowników, powiadomienia HUD
lub funkcję zabezpieczenia. Różne układy tego typu są uwzględnione w
super_status_bar.xml
Zmiany kodu źródłowego w interfejsie systemu
Nakładki mogą nie zapewniać elastyczności niezbędnej do odpowiedniego dostosowania działania interfejsu systemu.
Uwaga. Zmiany wprowadzone w kodzie źródłowym Androida są trudne do aktualizacji w nowszych wersjach Androida. Zdecydowanie zalecamy rozszerzenie kodu interfejsu systemu samochodowego zamiast modyfikować kod bezpośrednio. Dzięki temu podstawowy kod źródłowy w interfejsie systemu samochodowego można uaktualnić z minimalną liczbą konfliktów scalania, ponieważ wszystkie dostosowania są na znanych platformach API.
Większość elementów interfejsu systemu można dostosować za pomocą tych 2 punktów:
config_statusBarComponent
config_systemUIFactoryComponent
Jeśli na przykład utworzysz klasę o nazwie
com.android.systemui.statusbar.car.custom.CustomCarStatusBar
, która
rozszerza: CarStatusBar
, zaktualizuj config_statusBarComponent
do punktu
do tego nowego komponentu. Rozszerzenie tej klasy umożliwia dostosowanie większości elementów dotyczących
do paska systemowego i systemu logicznego powiadomień.
W podobny sposób możesz utworzyć element CustomCarSystemUIFactory
i umieścić go w
config_systemUIFactoryComponent
Za pomocą tych zajęć możesz zaktualizować funkcje
VolumeUI i ekran blokady.
Dostosowywanie przełączania i odblokowywania użytkowników
W materiałach poniżej opisano, jak dostosować proces przełączania użytkowników.
Termin | Opis |
---|---|
Blokada klawiszy | Okno pełnoekranowe zapobiegające przypadkowej interakcji z aplikacją na pierwszym planie. Chroni prywatność każdego użytkownika, gdy jest skonfigurowanych kilku użytkowników. |
Wczytuję okno | Ekran ładowania wyświetlany podczas przełączania się między użytkownikami. |
Ekran blokady, odbijający się ekran | Ekran, który wymaga od użytkownika podania kodu PIN, wzoru lub hasła. |
Użytkownik | Użytkownik Androida. |
Selektor użytkownika | Ekran wyboru użytkownika wyświetlany podczas uruchamiania urządzenia. |
Przełącznik użytkowników | Przełącznik użytkowników wyświetlany podczas przełączania ekranów w Szybkich ustawieniach. |
Dostosowywanie przełączania użytkowników
Ochrona klawiszy
W systemie operacyjnym Android Automotive ekran blokady klawiszy z selektorem użytkownika wyświetla się tylko gdy użytkownik kliknie przycisk Anuluj na ekranie blokady. Ekran blokady jest widoczny poniżej.
Rysunek 1. Ekran blokady
Ekran blokady z odbijakiem wyświetla się, gdy użytkownik wybierze typ prywatności Odblokuj urządzenie, jak pokazano poniżej.
Rysunek 2. Ekran blokady.
Gdy blokada jest ustawiona na ręczne włączanie i wyłączanie zasilania, postępuj zgodnie z tymi instrukcjami:
adb shell input keyevent 26
Selektor użytkownika
Ekran wyboru użytkownika wyświetla się, gdy urządzenie jest integralną częścią paska stanu interfejsu systemu w samochodzie
a Mapy uruchamiają się ponownie. Więcej informacji:
FullscreenUserSwitcher
Rysunek 3. Ekran wyboru użytkownika
Układ tego ekranu można dostosować w
car_fullscreen_user_switcher.xml
Wczytuję ekran
Ekran wczytywania jest wyświetlany przy każdym przełączeniu użytkownika, niezależnie od punktu wejścia. Dla:
np. za pomocą selektora użytkowników
lub ekranu ustawień. Ekran wczytywania jest zintegrowany
interfejsu systemu i mapuje na klasę publiczną zatytułowaną
CarUserSwitchingDialog
Przykład znajdziesz na rys. 3 powyżej.
Motyw można dostosować za pomocą
Theme_DeviceDefault_Light_Dialog_Alert_UserSwitchingDialog
Aby skonfigurować użytkownika Androida, początkowy proces kreatora konfiguracji umożliwia skonfigurowanie użytkownika swoje imię i nazwisko. Jeśli sterownik powiąże użytkownika Androida z kontem Google, nazwa jest wybrana z tego konta. Jeśli jednak sterownik określa nazwę, na przykład Sterownik B, a później wiąże tę nazwę użytkownika z jego kontem Google z imieniem Maddy, pierwotnie przypisana nazwa (DriverB) nie została zmieniona, ponieważ została ona jawnie ustawiona. Kierowca zmienić nazwę tylko w menu Ustawienia.
Układ można dostosować w car_user_switching_dialog.xml.
OEM może ukryć pasek stanu i pasek nawigacyjny, korzystając z motywu o nazwie
NoActionBar.Fullscreen
(To jest oryginalny interfejs systemu zaktualizowany pod kątem interfejsu referencyjnego w samochodzie). Więcej informacji:
Dostosowywanie.
OEM może zapewniać punkty wejścia w interfejsie użytkownika do przełączania użytkowników, ale wyniki mogą czasem być niepożądane. W takim przypadku:
- OEM tworzy i wyświetla niestandardowy ekran wczytywania (lub okno).
- W kontekście UX, OEM włącza niestandardowy ekran wczytywania, gdy użytkownik wybierze sposób które można ukryć po zakończeniu zmiany interfejsu użytkownika.
- OEM musi ustawić priorytet zgodnie z własnymi preferencjami. Może to być na przykład typ okna o wyższym priorytecie. Priorytet priorytet nie może przekroczyć wartości blokady klawiszy.
- OEM określa
config_customUserSwitchUi=true
w podstawowych ramach.config.xml
, jak opisano wconfig_customuserswitchui
. Jako platforma nie wyświetlaCarUserSwitchingDialog
.
Dostosowywanie ekranu blokady
Ekran blokady jest integralną częścią interfejsu systemu, który producent OEM może dostosować.
Aby dostosować proces, zacznij od frameworks/base/packages/CarSystemUI/
.
Dostosowywanie konfiguracji dla nowego użytkownika
Kreator konfiguracji przeprowadza konfigurację użytkownika po raz pierwszy. To także można dostosować. Dostępne opcje użyj Interfejsy API UserManager aby utworzyć użytkownika. W niektórych przypadkach można zaimplementować tę funkcję w tle, aby uprościć proces tworzenia kreatora konfiguracji.