Omówienie systemu operacyjnego Android Automotive

Interfejs użytkownika systemu operacyjnego Android Automotive
Rysunek 1. System operacyjny Android Automotive

System operacyjny Android Automotive to wersja Androida zoptymalizowana pod kątem użytkowania w samochodzie, która rozszerza podstawową platformę Androida. Samochody z wbudowanymi usługami Google działają w systemie operacyjnym Android Automotive i mają wbudowane aplikacje i usługi Google, takie jak Google Play, Gemini, Asystent Google i Mapy Google.

.

Więcej informacji o sprzęcie z systemem operacyjnym Android Automotive

Więcej informacji o minimalnych specyfikacjach sprzętowych urządzeń z systemem operacyjnym Android Automotive znajdziesz w sekcji Wymagania dotyczące samochodówdokumencie definicji zgodności z Androidem (CDD) dla wersji Androida, które obsługuje Twoja aplikacja.

Wycięcia w ekranie

Podobnie jak w przypadku innych formatów Androida, wycięcia na wyświetlaczu są obsługiwane przez urządzenia z Androidem Automotive OS z wyświetlaczami o kształcie innym niż prostokątny. Rozmiar i kształt wycięć w samochodach mogą się jednak znacznie różnić od tych w innych urządzeniach. Szczegółowe wskazówki znajdziesz w artykule Praca z wcięciami w oknie i wycięciami na wyświetlaczu.

Audio

Urządzenia z systemem operacyjnym Android Automotive mają zwykle stały poziom głośności. Więcej informacji o tym, jak może to wpłynąć na Twoją aplikację, znajdziesz w artykule Praca z urządzeniami o stałej głośności.

Informacje o oprogramowaniu systemu operacyjnego Android Automotive

System operacyjny Android Automotive jest oparty na tym samym systemie operacyjnym co inne formaty, ale ma dodatkowe funkcje, które mogą wpływać na sposób tworzenia i używania aplikacji.

interfejs systemu

Istnieją pewne różnice w działaniu tych elementów interfejsu systemu w samochodach, o których warto pamiętać.

W przeciwieństwie do innych formatów urządzenia z Androidem Automotive OS nie muszą mieć sprzętowego ani programowego przycisku „Wstecz”. Jeśli aktywności zaimplementowane w aplikacji nie są uruchamiane w trybie zgodności, powinny zawierać elementy interfejsu, które umożliwiają nawigację w aplikacji, aby spełniać AN-1 wskazówki dotyczące jakości.

Układ paska systemowego

Podobnie jak w przypadku innych formatów system operacyjny Android Automotive zawiera paski systemowe, takie jak paski stanu i paski nawigacyjne. W samochodach te paski mogą mieć inny rozmiar i położenie niż na innych urządzeniach. Na przykład paski nawigacyjne mogą być umieszczone po lewej, prawej lub u dołu ekranu. Nawet jeśli u góry znajduje się pasek stanu, a u dołu pasek nawigacyjny (jak w przypadku większości telefonów i tabletów), rozmiar tych elementów będzie prawdopodobnie znacznie większy w samochodach.

Wycięcia na wyświetlaczu urządzeń mobilnych zwykle mieszczą się w granicach pasków systemu, ale w samochodach tak nie jest.

Szczegółowe wskazówki znajdziesz w artykule Praca z wcięciami w oknie i wycięciami na wyświetlaczu.

Tryb pojemny

System operacyjny Android Automotive umożliwia producentom OEM kontrolowanie, czy aplikacje mogą wyświetlać lub ukrywać paski systemowe, aby włączać i wyłączać tryb pełnoekranowy. Uniemożliwiając aplikacjom ukrywanie pasków systemowych, producenci OEM mogą zapewnić, że elementy sterujące pojazdu, takie jak elementy sterujące klimatyzacją, będą zawsze dostępne na ekranie.

Ograniczenia dotyczące wrażeń użytkownika

Ograniczenia dotyczące wrażeń użytkowników (UX) to funkcja wbudowana w system operacyjny Android Automotive, która uwzględnia kwestie związane z rozpraszaniem uwagi kierowcy. Ograniczenia UX automatycznie uniemożliwiają korzystanie z aplikacji, które nie zostały zoptymalizowane pod kątem używania podczas jazdy.

Aktywność blokująca jest wyświetlana nad aplikacją, która nie jest oznaczona jako zoptymalizowana pod kątem rozpraszania uwagi.
Rysunek 2. Aplikacja zablokowana przez ograniczenia UX

Dokładny zestaw reguł określających, jak i kiedy ograniczenia UX są aktywne, jest ustalany przez producentów pojazdów. Te zasady mogą się różnić w zależności od regionu. Na przykład ten sam pojazd sprzedawany w Europie może podlegać innym zasadom niż pojazd sprzedawany w Stanach Zjednoczonych.

Reguły ograniczeń UX mogą się też różnić w zależności od wyświetlacza w pojeździe. Na przykład wyświetlacz centralny w polu widzenia kierowcy może być ograniczony podczas jazdy, a wyświetlacz pasażera pozostanie nieograniczony.

Jeśli Twoja aplikacja musi dostosować się do ograniczeń UX, odwołuj się do nich bezpośrednio, a nie próbuj odtworzyć ich implementacji. Jeśli na przykład założysz, że ograniczenia UX są aktywne, gdy pojazd nie jest zaparkowany, możesz niepotrzebnie ograniczyć aplikację działającą na wyświetlaczu pasażera.

Minimalizacja liczby elementów rozpraszających uwagę

Domyślnie działania nie mogą być wykonywane, gdy aktywne są ograniczenia interfejsu, aby ograniczyć rozpraszanie uwagi kierowcy. Aby poinformować system, że aktywność powinna być kontynuowana, gdy pojazd jest w ruchu, w odpowiednim elemencie <activity> można dodać ten element <meta-data>:

<activity ...>
  <meta-data android:name="distractionOptimized" android:value="true">
</activity>

Podczas tworzenia aplikacji na system operacyjny Android Automotive te metadane powinny być obecne w pliku manifestu tylko wtedy, gdy deklarujesz element <activity> manifestu dla CarAppActivity aplikacji utworzonej przy użyciu biblioteki aplikacji do samochodu. Żadne inne aktywności nie powinny być oznaczone jako zoptymalizowane pod kątem rozpraszania uwagi. Jeśli tak się stanie, Twoja aplikacja zostanie odrzucona podczas przesyłania do Sklepu Google Play.

Ułatwienia dostępu

Ułatwienia dostępu w systemie operacyjnym Android Automotive nie są tak rozbudowane jak w przypadku innych formatów. TalkBack, Switch AccessVoice Access nie są dostępne na urządzeniach z systemem operacyjnym Android Automotive OS.

Ustawienia napisów są obsługiwane na urządzeniach z systemem operacyjnym Android Automotive. Szczegółowe informacje o integracji znajdziesz w artykule Dostosowywanie ustawień napisów systemowych.

Wybór sieci

System operacyjny Android Automotive obsługuje wybór sieci dla poszczególnych aplikacji (PANS), co umożliwia producentom OEM kierowanie ruchu sieci komórkowej do różnych sieci w zależności od aplikacji.

Większość aplikacji korzysta tylko z przypisanej do nich sieci domyślnej i może tylko zyskać na tej funkcji. Na przykład producent OEM może płacić za ruch w sieci z Twojej aplikacji, nawet jeśli użytkownik nie ma własnego pakietu danych. Jeśli Twoja aplikacja (lub jedna z jej zależności) korzysta z innych sieci niż domyślna, może nie korzystać z ustawień określonych przez producenta OEM. Więcej informacji o korzystaniu z innych sieci niż domyślna znajdziesz w artykule Odczytywanie stanu sieci.

Funkcje systemowe

Możesz sprawdzić, czy dana funkcja jest dostępna, za pomocą PackageManager::hasSystemFeature i odpowiednio dostosować działanie aplikacji.

Funkcje sprzętowe

Podobnie jak w przypadku innych urządzeń niemobilnych, funkcje sprzętowe dostępne w samochodach mogą się różnić od tych, które są dostępne na urządzeniach mobilnych.

Orientacja ekranu

Podobnie jak telewizory, samochody są urządzeniami o stałej orientacji. W przeciwieństwie do telewizorów są dostępne w orientacji pionowej i poziomej. Aby aplikacje przeznaczone na system operacyjny Android Automotive można było rozpowszechniać na wszystkich pojazdach, nie mogą one mieć żadnych wyraźnych ani domniemanych wymagań dotyczących funkcji android.hardware.screen.landscape ani android.hardware.screen.portrait.

Lokalizacja sieciowa

Wiele urządzeń z systemem operacyjnym Android Automotive nie implementuje stosu telefonicznego używanego do udostępniania lokalizacji sieciowej, a tym samym nie zgłasza funkcji systemowej android.hardware.location.network. Chociaż lokalizacja sieciowa może być niedostępna, dostęp do przybliżonej lokalizacji jest nadal obsługiwany – patrz Przybliżona lokalizacja w systemie operacyjnym Android Automotive.

Funkcje oprogramowania

Niektóre funkcje oprogramowania, które są powszechnie dostępne na innych urządzeniach, mogą nie być obsługiwane na urządzeniach z systemem operacyjnym Android Automotive. Na przykład w wielu pojazdach z systemem operacyjnym Android Automotive nie są dostępne te funkcje:

Spełnianie wymagań dotyczących funkcji w Google Play

Aby aplikacje na system operacyjny Android Automotive były rozpowszechniane w samochodach za pomocą Google Play, muszą zawierać element <uses-feature> w pliku AndroidManifest.xml dla funkcji android.hardware.type.automotive:

<manifest ...>
  ...
  <!--
    See Choose a track for Android Automotive OS
    for details on how to choose which value to use for the android:required attribute.
  -->
  <uses-feature
      android:name="android.hardware.type.automotive"
      android:required="[true|false]">
  ...
</manifest>

Jeśli Twoja aplikacja zawiera wyraźną deklarację funkcjiandroid:required="true" lub wymaganie dotyczące funkcji w przypadku którejkolwiek z tych funkcji, musisz je zaktualizować lub usunąć, aby wymagania dotyczące funkcji aplikacji nie uniemożliwiały jej dystrybucji na inne kompatybilne pojazdy:

W przypadku funkcji wyraźnie zadeklarowanych za pomocą atrybutu android:required="true" możesz wykonać jedną z tych czynności:

  • Usuń element <uses-feature>, jeśli funkcja nie jest wymagana w inny sposób.
  • Wyraźnie zadeklaruj funkcję za pomocą android:required="false".

W przypadku funkcji wymaganych w sposób dorozumiany możesz wykonać jedną z tych czynności:

  • Wyraźnie zadeklaruj funkcję za pomocą android:required="false".
  • Usuń lub zaktualizuj wartości w pliku manifestu, które wprowadzają niejawne wymaganie dotyczące funkcji.

Zmiana deklaracji funkcji w pliku manifestu nie wpływa na rzeczywiste działanie aplikacji, więc sprawdź, czy aplikacja nadal działa prawidłowo bez tych funkcji.

Najczęstsze pytania

W których pojazdach są dostępne wbudowane usługi Google?

Listę producentów OEM, którzy mają modele z wbudowanymi usługami Google, znajdziesz na stronie Samochody z wbudowanymi usługami Google. Specyfikacje sprzętowe i inne szczegóły urządzenia można uzyskać za pomocą Katalogu urządzeń w Konsoli Play.