Der Android Open Source Project (AOSP) Automotive App Host ist Teil der Car App Library von Drittanbietern verwendet werden, um Apps für Android Automotive zu aktivieren. Der App Host ist ein System, App, mit der Auto-Apps von Drittanbietern die Komponenten der OEM-Benutzeroberfläche (UI) in seinem Namen rendern können.
Zum Ausführen von Drittanbieter-Apps müssen sowohl die Drittanbieter-App als auch der AOSP Automotive App Host installiert:
- Automotive App Host bietet Drittanbieter-Apps eine Reihe von UI-Vorlagen und ‐Komponenten für Fahrzeuge optimiert, einschließlich Funktionen wie Nutzerfreundlichkeit und Sicherheit.
- OEMs können diese UI-Vorlagen und Komponenten gestalten.
- Das Ergebnis: Drittanbieter-Apps sind optisch gut in die Infotainmentsystem des OEM.
Auf dieser Seite wird erläutert, wie Sie den AOSP Automotive App Host über das Gradle-Projekt im
ub-automotive
-Zweig und Informationen zur Integration des AOSP Automotive App Host in das Auto
Ziele.
Code ansehen
So rufen Sie den entbündelten Code auf:
- Führen Sie den folgenden Befehl aus:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -j4
Weitere Informationen zur Arbeit mit dem AOSP-Quellcode finden Sie unter Repository-Client initialisieren
- Installieren Sie Android Studio.
AOSP-Host-APK erstellen
- Sehen Sie sich
ub-automotive
an und öffnen Sie dann das Gradle-Projekt unterpackages/apps/Car/Templates/Host
. - Um das Projekt mit dem Android SDK zu konfigurieren, konfigurieren Sie das
local.properties
-Datei. Den Pfad finden Sie in den Android SDK-Einstellungen Studiosdk.dir=${path_to_android_sdk_location}
- Erstellen Sie das Host-APK als typisches Gradle-Projekt. Führen Sie beispielsweise den Befehl
gradle
aus: Befehl:./gradlew :app:assembleDebug
Die APK-Datei befindet sich hier:
packages/apps/Car/Templates/Host/app/build/outputs/apk/debug/app-debug.apk
AOSP-Host einbetten
- Erstellen Sie eine neue
Android.mk
-Datei mit folgendem Inhalt:LOCAL_PATH := $(my-dir) ################## Start of AOSPHost target ################## include $(CLEAR_VARS) LOCAL_MODULE := CarAOSPHost LOCAL_LICENSE_KINDS := legacy_notice LOCAL_LICENSE_CONDITIONS := notice LOCAL_MODULE_OWNER := google LOCAL_SRC_FILES := AOSPHost.apk LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_TAGS := optional LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) LOCAL_BUILT_MODULE_STEM := package.apk LOCAL_CERTIFICATE := PRESIGNED LOCAL_PRIVILEGED_MODULE := true LOCAL_PRODUCT_MODULE := true LOCAL_DEX_PREOPT := false include $(BUILD_PREBUILT)
- Benennen Sie
app-debug.apk
inAOSPHost.apk
um und legen Sie das APK im denselben Ordner wieAndroid.mk
. - Fügen Sie Ihren Zielen das Modul
CarAOSPHost
alsPRODUCT_PACKAGES
hinzu:PRODUCT_PACKAGES += \ CarAOSPHost \
Berechtigungskonfiguration hinzufügen
- Erstellen Sie eine Datei mit dem Namen
com.android.car.templates.host.xml
, die Folgendes enthält:<permissions> <!-- Rename the package to com.android.car.templates.host --> <privapp-permissions package="com.android.car.templates.host"> <!-- To be able to display activities in the cluster --> <permission name="android.car.permission.CAR_DISPLAY_IN_CLUSTER" /> <!-- To be able to show navigation state (turn by turn directions) in the cluster.--> <permission name="android.car.permission.CAR_NAVIGATION_MANAGER" /> <!-- To be considered a system-approved host --> <permission name="android.car.permission.TEMPLATE_RENDERER" /> </privapp-permissions> <!-- Declare support for templated applications. --> <feature name="android.software.car.templates_host" /> </permissions>
- Fügen Sie den Zielen im Ziel die Konfigurationsdatei hinzu:
PRODUCT_COPY_FILES += \ <the file root>/com.android.car.templates.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.car.templates.host.xml
Ziel erstellen
Wenn Sie das Ziel erstellen, wird der Host installiert und die Berechtigung wird gewährt:
… android.car.permission.CAR_NAVIGATION_MANAGER: granted=true android.car.permission.CAR_DISPLAY_IN_CLUSTER: granted=true android.car.permission.TEMPLATE_RENDERER: granted=true …
Integration testen
Informationen zum Erstellen und Installieren der Beispiele finden Sie in diesem GitHub-Projekt. car-samples/car_app_library auf ein.