Android Automotive OS – Übersicht

Benutzeroberfläche von Android Automotive OS
Abbildung 1: Android Automotive OS

Android Automotive OS ist eine für die Nutzung im Auto optimierte Version von Android, die die Android-Plattform erweitert. Autos mit Google-Integration laufen unter Android Automotive OS und sind mit Google-Apps und ‑Diensten wie Google Play, Google Assistant und Google Maps ausgestattet.

Informationen zur Android Automotive OS-Hardware

Weitere Informationen zu den Mindesthardwarespezifikationen für Android Automotive OS-Geräte finden Sie im Abschnitt Automotive Requirements des Android Compatibility Definition Document (CDD) für die Android-Versionen, die von Ihrer App unterstützt werden.

Display-Aussparungen

Wie bei anderen Android-Formfaktoren werden Displayausschnitte von Android Automotive OS-Geräten mit nicht rechteckigen Displays unterstützt. Die Größe und Form von Ausschnitten in Autos kann jedoch stark von denen in anderen Formfaktoren abweichen. Ausführliche Informationen finden Sie unter Mit Fenstereinsätzen und Displayausschnitten arbeiten.

Audio

Android Automotive OS-Geräte haben in der Regel ein festes Speichervolumen. Weitere Informationen dazu, wie sich das auf Ihre App auswirken kann, finden Sie unter Mit Geräten mit fester Lautstärke arbeiten.

Android Automotive OS-Software

Android Automotive OS basiert zwar auf demselben Kernbetriebssystem wie andere Formfaktoren, bietet aber einige zusätzliche Funktionen, die sich auf die Entwicklung und Nutzung von Apps auswirken können.

System-UI

Es gibt einige Unterschiede bei der Funktionsweise dieser System-UI-Elemente in Autos, die Sie beachten sollten.

Im Gegensatz zu anderen Formfaktoren ist für Android Automotive OS-Geräte keine Hardware- oder Software-Back-Affordance erforderlich. Wenn die App nicht im Kompatibilitätsmodus ausgeführt wird, sollten die von Ihrer App implementierten Aktivitäten UI-Elemente enthalten, die die Navigation innerhalb der App ermöglichen, um die Qualitätsrichtlinie AN-1 zu erfüllen.

Layout der Systemleiste

Wie bei anderen Formfaktoren enthält Android Automotive OS Systemleisten wie Statusleisten und Navigationsleisten. In Autos können diese Balken anders dimensioniert und positioniert sein als bei anderen Formfaktoren. Navigationsleisten können sich beispielsweise links, rechts oder unten auf dem Bildschirm befinden. Selbst wenn oben eine Statusleiste und unten eine Navigationsleiste vorhanden ist (wie bei den meisten Smartphones und Tablets), sind diese Elemente in Autos wahrscheinlich viel größer.

Außerdem sind Displayausschnitte auf Mobilgeräten in der Regel innerhalb der Systemleisten enthalten, was bei Autos nicht der Fall ist.

Ausführliche Informationen finden Sie unter Mit Fenstereinsätzen und Displayausschnitten arbeiten.

Immersiver Modus

Mit Android Automotive OS können OEMs festlegen, ob Apps die Systemleisten ein- oder ausblenden können, um in den Vollbildmodus zu wechseln und ihn wieder zu verlassen. Wenn OEMs verhindern, dass Apps die Systemleisten ausblenden, können sie dafür sorgen, dass Fahrzeugsteuerelemente wie die Klimaanlage immer auf dem Display verfügbar sind.

Einschränkungen für die Nutzerfreundlichkeit

Einschränkungen der User Experience (UX) sind Funktionen, die in Android Automotive OS integriert sind, um Ablenkungen von Fahrern zu vermeiden. UX-Einschränkungen verhindern automatisch die Verwendung von Apps, die nicht für die Nutzung während der Fahrt optimiert wurden.

Die Aktivität, die blockiert wird, wird über einer App angezeigt, die nicht als ablenkungsfrei gekennzeichnet ist.
Abbildung 2: Eine App, die aufgrund von UX-Einschränkungen blockiert wird

Die genauen Regeln, die festlegen, wie und wann UX-Einschränkungen aktiv sind, werden von den Fahrzeugherstellern festgelegt. Diese Regeln können je nach Region variieren. So gelten für dasselbe Fahrzeug, das in Europa verkauft wird, möglicherweise andere Regeln als für ein Fahrzeug, das in den USA verkauft wird.

UX-Einschränkungsregeln können sich auch je nach Display in einem Fahrzeug unterscheiden. So kann beispielsweise ein Mitteldisplay im Sichtfeld des Fahrers eingeschränkt werden, während das Fahrzeug in Bewegung ist, während ein Display für den Beifahrer uneingeschränkt bleibt.

Wenn Ihre App an UX-Einschränkungen angepasst werden muss, verweisen Sie direkt darauf. Versuchen Sie nicht, ihre Implementierung zu entschlüsseln. Wenn Sie beispielsweise davon ausgehen, dass UX-Einschränkungen aktiv sind, wenn der Gang nicht auf „Parken“ steht, beschränken Sie möglicherweise unnötigerweise eine App, die auf dem Display des Beifahrers ausgeführt wird.

Ablenkungsoptimierung

Standardmäßig können Aktivitäten nicht ausgeführt werden, während UX-Einschränkungen aktiv sind, um Ablenkungen für den Fahrer zu vermeiden. Wenn Sie dem System mitteilen möchten, dass eine Aktivität auch dann ausgeführt werden soll, wenn sich das Fahrzeug bewegt, können Sie das folgende <meta-data>-Element in das entsprechende <activity>-Element einfügen.

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

Bei der Entwicklung von Apps für Android Automotive OS sollten diese Metadaten nur dann in Ihrem Manifest vorhanden sein, wenn Sie das Manifest-Element <activity> für die CarAppActivity einer App deklarieren, die mit der Car App Library erstellt wurde. Keine anderen Aktivitäten sollten als ablenkungsfrei gekennzeichnet werden. Andernfalls wird Ihre App abgelehnt, wenn Sie sie im Google Play Store einreichen.

Bedienungshilfen

Die Unterstützung für Bedienungshilfen unter Android Automotive OS ist nicht so umfangreich wie bei anderen Formfaktoren. TalkBack, Schalterzugriff und Voice Access sind auf Geräten mit Android Automotive OS nicht verfügbar.

Einstellungen für Untertitel werden auf Geräten mit Android Automotive OS unterstützt. Weitere Informationen zur Integration findest du unter Systemeinstellungen für Untertitel übernehmen.

Netzwerkauswahl

Android Automotive OS unterstützt die Netzwerkauswahl pro Anwendung (Per-Application Network Selection, PANS). So können OEMs den mobilen Netzwerkverkehr auf Anwendungsebene an verschiedene Netzwerke weiterleiten.

Die meisten Apps verwenden nur das ihnen zugewiesene Standardnetzwerk und können von dieser Funktion nur profitieren. So kann der OEM beispielsweise für den Netzwerkverkehr Ihrer App bezahlen, auch wenn der Nutzer keinen eigenen Datentarif hat. Wenn Ihre App (oder eine ihrer Abhängigkeiten) auf andere Netzwerke als das Standardnetzwerk angewiesen ist, kann sie möglicherweise nicht von den vom OEM festgelegten Einstellungen profitieren. Weitere Informationen zur Verwendung anderer Netzwerke als des Standardnetzwerks finden Sie unter Netzwerkstatus lesen.

Systemfunktionen

Mit PackageManager::hasSystemFeature können Sie erkennen, ob eine bestimmte Funktion verfügbar ist, und das Verhalten Ihrer App entsprechend anpassen.

Hardware-Funktionen

Wie bei anderen nicht mobilen Formfaktoren können sich die in Autos verfügbaren Hardwarefunktionen von denen auf Mobilgeräten unterscheiden.

Bildschirmausrichtung

Wie Fernseher haben auch Autos eine feste Ausrichtung. Im Gegensatz zu Fernsehern sind sie sowohl im Hoch- als auch im Querformat erhältlich. Damit Apps, die für Android Automotive OS entwickelt wurden, für alle Fahrzeuge bereitgestellt werden können, dürfen sie keine expliziten oder impliziten Funktionsanforderungen für die Funktionen android.hardware.screen.landscape oder android.hardware.screen.portrait haben.

Netzwerkstandort

Viele Android Automotive OS-Geräte implementieren nicht den Telefoniestack, der für die Bereitstellung des Netzwerkstandorts verwendet wird, und melden daher nicht die Systemfunktion android.hardware.location.network. Auch wenn der Netzwerkstandort möglicherweise nicht verfügbar ist, wird der Zugriff auf den ungefähren Standort weiterhin unterstützt. Weitere Informationen finden Sie unter Ungefährer Standort unter Android Automotive OS.

Softwarefunktionen

Einige Softwarefunktionen, die bei anderen Formfaktoren üblich sind, werden auf Android Automotive OS-Geräten möglicherweise nicht unterstützt. Die folgenden Funktionen sind beispielsweise in vielen Android Automotive OS-Fahrzeugen nicht verfügbar:

Google Play-Funktionsanforderungen erfüllen

Damit Apps, die für Android Automotive OS entwickelt wurden, über Google Play für Autos angeboten werden können, müssen sie in der Datei AndroidManifest.xml ein <uses-feature>-Element für die Funktion android.hardware.type.automotive enthalten:

<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>

Wenn Ihre App außerdem eine explizite Funktionserklärung mit android:required="true" oder eine implizite Funktionsanforderung für eine der folgenden Funktionen enthält, müssen Sie sie aktualisieren oder entfernen, damit die Funktionsanforderungen Ihrer App nicht die Bereitstellung für ansonsten kompatible Fahrzeuge verhindern:

Für mit android:required="true" explizit deklarierte Funktionen haben Sie folgende Möglichkeiten:

  • Löschen Sie das Element <uses-feature>, wenn die Funktion anderweitig nicht implizit erforderlich ist.
  • Deklarieren Sie die Funktion explizit mit android:required="false".

Für implizit erforderliche Funktionen haben Sie folgende Möglichkeiten:

  • Deklarieren Sie die Funktion ausdrücklich mit android:required="false".
  • Entfernen oder aktualisieren Sie die Manifestwerte, die die implizite Anforderung an die Funktion einführen.

Das Ändern der Funktionsdeklarationen in Ihrem Manifest wirkt sich nicht auf die tatsächliche Funktion Ihrer App aus. Prüfen Sie daher, ob Ihre App auch ohne diese Funktionen ordnungsgemäß funktioniert.

Häufig gestellte Fragen

Welche Fahrzeuge sind mit Google-Integration ausgestattet?

Auf der Website Autos mit Google-Integration finden Sie eine Liste der OEMs, die Modelle mit Google-Integration anbieten. Hardwarespezifikationen und andere Gerätedetails finden Sie im Gerätekatalog der Play Console.