Przewodnik po integracji z hostem AOSP

Automotive App Host w ramach projektu Android Open Source (AOSP) jest częścią biblioteki aplikacji samochodowych, której używają deweloperzy zewnętrzni (3P), aby umożliwić korzystanie z aplikacji na Androida Automotive. Host aplikacji to aplikacja systemowa, która umożliwia aplikacjom samochodowym innych firm renderowanie komponentów interfejsu użytkownika w stylu OEM.

Aby uruchamiać aplikacje innych firm, musisz zainstalować aplikację innej firmy i AOSP Automotive App Host:

  • Automotive App Host udostępnia aplikacje innych firm z zestawem szablonów i komponentów interfejsu użytkownika zoptymalizowanych pod kątem pojazdów, w tym pod kątem użyteczności i bezpieczeństwa.
  • Producenci OEM mogą nadawać styl tym szablonom i komponentom interfejsu.
  • Jaki jest efekt? Aplikacje innych firm są dobrze zintegrowane wizualnie z systemem multimedialnym producenta.

Z tej strony dowiesz się, jak wygenerować host aplikacji AOSP Automotive z projektu Gradle w gałęzi ub-automotive, a potem jak zintegrować host aplikacji AOSP Automotive z celami samochodowymi.

Sprawdź kod

Aby sprawdzić kod niespakowany:

  1. Uruchom to polecenie:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -j4
  2. Więcej informacji o pracy z kodem źródłowym AOSP znajdziesz w artykule Inicjowanie klienta repo.

  3. Zainstaluj Android Studio.

Tworzenie pliku APK hosta AOSP

  1. Pobierz ub-automotive, a następnie otwórz projekt Gradle w packages/apps/Car/Templates/Host.
  2. Aby skonfigurować projekt za pomocą pakietu Android SDK, skonfiguruj plik local.properties projektu. Ścieżkę znajdziesz w Android Studio w ustawieniach pakietu Android SDK.
    sdk.dir=${path_to_android_sdk_location}
  3. Utwórz plik APK hosta jako typowy projekt Gradle. Na przykład uruchom polecenie gradle:
    ./gradlew :app:assembleDebug

    Plik APK znajduje się w folderze:

    packages/apps/Car/Templates/Host/app/build/outputs/apk/debug/app-debug.apk

Wstawianie hosta AOSP

  1. Utwórz nowy plik Android.mk, aby dodać te treści:
    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. Zmień nazwę pliku app-debug.apk na AOSPHost.apk i umieść plik APK w tym samym folderze co plik Android.mk.
  3. Dodaj moduł CarAOSPHost do celów jako PRODUCT_PACKAGES:
    PRODUCT_PACKAGES += \
       CarAOSPHost \

Dodawanie konfiguracji uprawnień

  1. Utwórz plik o nazwie com.android.car.templates.host.xml, który będzie zawierać:
    <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. Dodaj plik konfiguracji do docelowych maszyn:
    PRODUCT_COPY_FILES += \
        <the file root>/com.android.car.templates.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.car.templates.host.xml

Tworzenie środowiska docelowego

Gdy tworzysz docelowe, host jest instalowany i uprawnienia są przyznawane:

      
      android.car.permission.CAR_NAVIGATION_MANAGER: granted=true
      android.car.permission.CAR_DISPLAY_IN_CLUSTER: granted=true
      android.car.permission.TEMPLATE_RENDERER: granted=true
      

Testowanie integracji

Aby skompilować i zainstalować przykłady, użyj tego projektu na GitHubie: car-samples/car_app_library.