Android Automotive unterstützt nicht nur Apps, die für die Nutzung beim Fahren entwickelt wurden, Das Betriebssystem unterstützt Browser, Spiele und Videos Du kannst dieselbe App an Autos versenden wie an andere Geräte mit großen Bildschirmen mit nur wenigen geringfügigen Änderungen.
Vorhandene App in einem Android Automotive OS-Emulator testen
Um mit der Entwicklung Ihrer App für Android Automotive OS zu beginnen, testen Sie zuerst Ihre vorhandene in einem Android Automotive OS-Emulator aus. Um einen Emulator einzurichten, folgen Sie der Schritte im Artikel Mit dem Android Automotive OS-Emulator testen beschrieben. Anschließend können Sie die App ausführen, indem Sie der Anleitung unter Führen Sie Ihre App im Emulator aus.
Achten Sie beim Ausführen Ihrer App auf Kompatibilitätsprobleme, z. B. Folgendes:
- Infotainmentbildschirme haben eine feste Ausrichtung. Um die Auto App-Qualitätsrichtlinien erfüllt, müssen Apps das Hoch- und Querformat unterstützen Ausrichtungen.
- Auf anderen Geräten verfügbare APIs sind möglicherweise nicht für Android Automotive verfügbar Betriebssystem Beispielsweise sind einige APIs der Google Play-Dienste nicht unter Android verfügbar. Automotive OS Weitere Informationen findest du im Abschnitt Funktionen deaktivieren. .
Manifestdateien Ihrer App konfigurieren
Für die Ausrichtung auf Android Automotive OS muss deine App bestimmte Manifesteinträge enthalten. Damit werden Apps, die auf Android Automotive OS ausgerichtet sind, im Play Store mit einem separaten Automotive OS-Release-Typ. Sie werden durch manuelle Überprüfung, um sicherzustellen, dass sie für die Nutzung im Auto sicher sind. Weitere Informationen finden Sie unter Android-Apps für Autos vertreiben. Details.
Erforderliche Android Automotive OS-Funktionen
Für Android Automotive OS entwickelte Apps, die in einem Auto im Play Store angeboten werden sollen
muss die folgenden <uses-feature>
enthalten
Element in AndroidManifest.xml
Datei:
<manifest ...>
...
<uses-feature
android:name="android.hardware.type.automotive"
android:required="true" />
...
</manifest>
Für Apps, die nicht zu Fahrzeugen eingereicht wurden, kann die <uses-feature>
nicht deklariert werden.
wie im vorherigen Codebeispiel dargestellt, da sie nicht von
spezielle Hardware verwenden. Um also dieselbe App für die Automobilbranche
nicht aus dem Automobilbereich, müssen Sie mindestens zwei Varianten Ihrer App generieren:
eine für Fahrzeuge und ein anderes für Mobilgeräte. Weitere Informationen
Informationen zum Erstellen dieser separaten Geschmacksrichtungen finden Sie in der folgenden Dokumentation:
Die beiden Varianten der App können denselben Paketnamen haben, haben verschiedene Versionscodes, da sie in die Play Store-Tracks hochgeladen werden. separat.
Statt separate Flavors zu verwenden, können Sie auch separate Pakete Namen für Ihre APKs oder App Bundles für Mobilgeräte und Autos zu erhalten. Um die Bedeutung Vor- und Nachteile der einzelnen Ansätze, siehe Paketnamen im Entwicklerleitfaden für Medien-Apps.
Neben dem im vorherigen Codebeispiel gezeigten Element werden Apps, die für
Android Automotive OS muss die folgenden <uses-feature>
-Elemente in
dem Stammelement <manifest>
:
<uses-feature
android:name="android.hardware.wifi"
android:required="false"/>
<uses-feature
android:name="android.hardware.screen.portrait"
android:required="false"/>
<uses-feature
android:name="android.hardware.screen.landscape"
android:required="false"/>
Indem Sie diese Funktionen explizit als nicht erforderlich festlegen, sorgen Sie dafür, dass Ihre App steht nicht im Konflikt mit verfügbaren Hardwarefunktionen von Android Automotive OS-Geräten.
Sicherstellen, dass keine für die Ablenkung optimierten Aktivitäten vorhanden sind
Damit Ihre App nur genutzt werden kann, wenn das Fahrzeug geparkt ist, sollten Sie das nicht
das folgende <meta-data>
-Element in eine beliebige
<activity>
-Element in deinem
Manifest:
<!-- NOT ALLOWED -->
<meta-data
android:name="distractionOptimized"
android:value="true"/>
Ohne diese Metadaten werden die Aktivitäten deiner App automatisch blockiert
vom Betriebssystem aus, wenn das Auto in den Fahrmodus wechselt, um Ablenkungen zu reduzieren.
. Dies geschieht als
onPause
Lebenszyklus-Callback, in dem die Video- und Audiowiedergabe angehalten werden muss
aus Ihrer App.
Kategoriespezifische Manifesteinträge
Zusätzlich zu den oben genannten Anforderungen, die für alle geparkten Apps gelten, gilt Folgendes: Für die Kategorien „Video“ und „Spiele“ gelten zusätzliche Anforderungen:
- Informationen zu Video-Apps finden Sie unter App als Video-App kennzeichnen.
- Informationen zu Spielen finden Sie unter App als Spiel kennzeichnen.
App für Android Automotive OS optimieren
Um die Nutzerfreundlichkeit zu verbessern, sollten Sie Folgendes beachten: bei der Entwicklung Ihrer App für Android Automotive OS berücksichtigen.
Für große Bildschirme optimieren
Die Bildschirme in Android Automotive OS-Fahrzeugen sind ähnlich groß, und Seitenverhältnis bei Tablets und faltbaren Geräten als bei Smartphones. Daher Die Optimierung deiner App für große Bildschirme kommt auch für Autonutzer von Vorteil.
Lesen Sie insbesondere den Artikel Unterstützung verschiedener Bildschirme Größen und Migrate Ihrer UI auf responsive Layouts anwenden Anleitungen dazu, wie Sie große Displayformate optimal nutzen, sowie Medien und Spiele für Designinspirationen und Anleitungen.
Andere Optimierungen für große Bildschirme, wie z. B. Eingabe Kompatibilität nicht so direkt vorteilhaft für Android Automotive OS sind, die User Experience zu verbessern. Bei der Tastaturnavigation wird beispielsweise das dieselben APIs wie die Drehnavigation, Von dort vorgenommenen Optimierungen profitieren also beide Formfaktoren.
Mit Fenstereinlagen und Display-Aussparungen arbeiten
Wie auch andere Formfaktoren enthält Android Automotive OS eine System-UI wie Status- und Navigationsleisten sowie die Unterstützung nicht rechteckiger angezeigt wird.
Standardmäßig werden Apps in einem Bereich gezeichnet, der sich nicht mit Systemleisten überschneidet oder Display-Aussparungen. Es kann jedoch sein, dass Ihre App die Systemleisten ausblendet, zeichnen Sie dahinter Inhalte oder zeigen Sie Inhalte in einem Display-Aussparung, wie beschrieben im Artikel App innerhalb von Fenstereinfügungen anlegen (in englischer Sprache) Wenn Ihre App eine dieser Funktionen erfüllt. In den folgenden Unterabschnitten finden Sie Details zu wie du deine App für Android Automotive OS optimieren kannst Geräte.
Systemleisten, immersiver Modus und Edge-to-Edge-Rendering
Systembalken in Fahrzeugen können eine andere Größe und Position haben als andere Formfaktoren. Navigationsleisten können beispielsweise links, oder unten auf dem Bildschirm angezeigt werden. Auch wenn eine Statusleiste auf der und einer Navigationsleiste unten (wie bei den meisten Telefonen und Tablets), ist die Größe dieser Elemente in Autos wahrscheinlich viel größer.
Außerdem können OEMs
mit Android Automotive OS festlegen,
Apps können Systemleisten zum Aufrufen und Beenden der immersiven App ein- oder ausblenden.
Modus an. Wenn Sie z. B. verhindern, dass Apps
Durch das Ausblenden der Systemleisten können OEMs
sicherstellen, dass Fahrzeugkontrollen wie die Klima
Steuerelemente, sind immer auf dem Bildschirm zugänglich. Wenn ein OEM verhindert, dass Apps
der Systemleisten passiert nichts, wenn eine App die
WindowInsetsController
(oder WindowInsetsControllerCompat
)
APIs zum Ein- oder Ausblenden von Systemleisten Weitere Informationen finden Sie in der Dokumentation zu show
und
Unter hide
erfährst du mehr darüber, wie du feststellen kannst, ob deine App Änderungen an der
Einsätze.
Ebenso können OEMs auch steuern, ob Apps die Farbe und Transparenz der Systembalken, um sicherzustellen, dass die Balken und Elemente immer deutlich sichtbar sind. Wenn Ihre App Achten Sie darauf, dass sich nur nicht kritische Inhalte hinter Systemleisten befinden. Diese Inhalte sind möglicherweise nicht sichtbar, wenn der OEM des Geräts das Festlegen der Farbe verhindert. oder die Lichtdurchlässigkeit der Balken.
<!-- Depending on OEM configuration, these style declarations
(and the corresponding runtime calls) may be ignored -->
<style name="...">
<item name="android:statusBarColor">...</item>
<item name="android:navigationBarColor">...</item>
<item name="android:windowTranslucentStatus">...</item>
<item name="android:windowTranslucentNavigation">...</status>
</style>
Machen Sie keine Annahmen über Größe, Anzahl, oder die Position der Systemleisten. Verwenden Sie stattdessen die Window Insets APIs, der App-Inhalte relativ zu den Systemleisten. Weitere Informationen finden Sie unter Edge-to-Edge-Inhalte in der App präsentieren finden Sie weitere Informationen zur Verwendung dieser APIs. Hartcodierte Padding-Werte, die zwar nie empfohlen, Inhalte werden möglicherweise auf anderen Geräten im sicheren Bereich aufbewahrt, in Autos nicht.
An ungleichförmig geformte Displays anpassen
Zusätzlich zu den rechteckigen Displays haben manche Fahrzeuge möglicherweise eine unregelmäßige Form wie in Abbildung 1 dargestellt:
<ph type="x-smartling-placeholder">Wenn Ihre App nicht randlos gerendert wird, müssen Sie nichts unternehmen. im sicheren Bereich gerendert werden.
Wenn Ihre App randlos gerendert wird, können Sie festlegen, wie das
Display-Aussparungen verhalten. Sie können dies mithilfe von Ressourcen erreichen,
indem Sie das Attribut
android:windowLayoutInDisplayCutoutMode
Attribut für das Design Ihrer App oder während der Laufzeit
indem Sie die
layoutInDisplayCutoutMode
.
Weil die Arten von Display-Aussparungen auf Android Automotive OS-Geräten vorhanden sind
auf Mobilgeräten unterscheiden, verwenden Sie nicht die
LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
oder LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
,
deren Verhalten für die Aussparungen von Mobilgeräten optimiert ist. Stattdessen
LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
verwenden
oder LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
um entweder immer zu vermeiden
oder immer in die Aussparung einzudringen. Wenn Sie Letzteres auswählen,
Weitere Informationen findest du unter Unterstützung von Display-Aussparungen.
Details zu den APIs für Display-Aussparungen
Wenn Ihre App in der Display-Aussparung gerendert wird und Sie unterschiedliches Verhalten von Android Automotive OS und Mobilgeräten, siehe Deaktivieren Sie Funktionen, wenn dies in Ihrer App der Fall ist. und verwenden alternative Ressourcen, wenn Ihre App legt dieses Verhalten mithilfe von Ressourcendateien fest.
Funktionen deaktivieren
Wenn Sie eine bestehende mobile App für Android Automotive OS verfügbar machen, sind bestimmte Funktionen möglicherweise nicht relevant oder nicht verfügbar. Für Beispielsweise haben Autos in der Regel keinen Zugang zu Kameras. Außerdem wird nur ein Teil der Google Play-Dienste ist unter Android Automotive OS verfügbar. Siehe Google Play-Dienste für Autos für weitere Informationen Details.
Sie können die PackageManager.hasSystemFeature
verwenden
Die API, um zu erkennen, ob die App unter Android Automotive OS ausgeführt wird, indem geprüft wird
für die
FEATURE_AUTOMOTIVE
wie im folgenden Beispiel gezeigt:
Kotlin
val packageManager: PackageManager = ... // Get a PackageManager from a Context val isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) if (isCar) { // Enable or disable a given feature }
Java
PackageManager packageManager = ... // Get a PackageManager from a Context boolean isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) if (isCar) { // Enable or disable a given feature }
Wenn Ihre App auch eine Android Auto-Komponente hat, können Sie verwenden Sie die CarConnection API des Android for Cars-App-Bibliothek, um zu erkennen, ob die App die unter Android Automotive OS oder Android Auto laufen auf ein Auto übertragen.
Für Bild im Bild (BiB) solltest du die etablierten Best Practices überprüfen, ob die verfügbar ist und angemessen reagieren.
Mit Offlineszenarien umgehen
Während Autos immer mehr mit dem Internet verbunden sind, werden Apps empfohlen, ohne Internetverbindung ausgeführt werden, wie in den folgenden Fällen:
- Nutzer können mobile Daten im Rahmen eines Abos deaktivieren vom Autohersteller.
- In bestimmten Regionen ist der Zugriff auf mobile Daten möglicherweise eingeschränkt.
- Autos mit WLAN-Funkschnittstellen befinden sich möglicherweise nicht in Reichweite WLAN zugunsten eines Mobilfunknetzes deaktivieren.
Bereiten Sie sich auf diese Szenarien in Ihrer App vor, indem Sie Graceful Degradierung vornehmen. Funktionalität, die vom Internetzugang abhängt, z. B. von Offline-Inhalten. Weitere Informationen erhalten Sie unter Best Practices zur Optimierung Netzwerk.
Alternative Ressourcen verwenden
Um Ihre App für Autos anzupassen, können Sie den Ressourcen-Qualifier car
verwenden, um
alternative Ressourcen
auf einem Android Automotive OS-Fahrzeug. Wenn Sie beispielsweise
Zu speichernde Dimensionsressourcen
Padding-Werte können Sie einen höheren Wert für den Ressourcensatz car
verwenden,
Berührungszielbereiche vergrößern
App vertreiben
Nachdem Sie Ihre App anhand der Qualitätsrichtlinien für Kategorie und Android Automotive OS-Build davon mit notwendigen Änderungen für seine kannst du sie dann in den Formfaktor-Tracks für Automotive OS auf der Play Store Siehe Android-Apps für Autos vertreiben findest du weitere Informationen zur Veröffentlichung.
Feedback zu geparkten Apps geben
Wenn bei der Entwicklung des geparkten Fahrzeugs für Android Automotive OS erstellt, könnt ihr dies über die Problemverfolgung von Google Geben Sie alle erforderlichen Informationen in der Problemvorlage an. Vorher ein neues Problem melden, prüfen Sie, ob es bereits in der Problemliste aufgeführt ist. Ich können Themen abonnieren und abstimmen, indem Sie auf den Stern für ein Problem in klicken. den Tracker. Weitere Informationen finden Sie unter Eine Ausgabe abonnieren: