Integrationsanleitung für AOSP-Host

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:

  1. Führen Sie den folgenden Befehl aus:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -j4
    
  2. Weitere Informationen zur Arbeit mit dem AOSP-Quellcode finden Sie unter Repository-Client initialisieren

  3. Installieren Sie Android Studio.

AOSP-Host-APK erstellen

  1. Sehen Sie sich ub-automotive an und öffnen Sie dann das Gradle-Projekt unter packages/apps/Car/Templates/Host.
  2. Um das Projekt mit dem Android SDK zu konfigurieren, konfigurieren Sie das local.properties-Datei. Den Pfad finden Sie in den Android SDK-Einstellungen Studio
    sdk.dir=${path_to_android_sdk_location}
    
  3. 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

  1. 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)
    
  2. Benennen Sie app-debug.apk in AOSPHost.apk um und legen Sie das APK im denselben Ordner wie Android.mk.
  3. Fügen Sie Ihren Zielen das Modul CarAOSPHost als PRODUCT_PACKAGES hinzu:
    PRODUCT_PACKAGES += \
       CarAOSPHost \
    

Berechtigungskonfiguration hinzufügen

  1. 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>
    
  2. 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.