Przewodnik po integracji hosta AOSP

Android Open Source Project (AOSP) Automotive App Host jest częścią biblioteki aplikacji w samochodzie używane przez zewnętrznych deweloperów do obsługi aplikacji na Androida Automotive. App Host to system, aplikacja, która pozwala aplikacjom samochodowym innych firm renderować w jej imieniu komponenty interfejsu użytkownika w stylu OEM.

Aby można było uruchamiać aplikacje innych firm, zarówno aplikacja tej firmy, jak i host aplikacji AOSP Automotive App Host muszą zainstalowano:

  • Automotive App Host udostępnia aplikacjom innych firm z zestawem szablonów i komponentów UI zoptymalizowane pod kątem pojazdów, m.in. pod kątem łatwości obsługi i bezpieczeństwa.
  • OEM może zmieniać styl tych szablonów i komponentów.
  • Efekt? Aplikacje innych firm są dobrze zintegrowane systemu multimedialnego OEM.

Na tej stronie wyjaśniamy, jak wygenerować host aplikacji AOSP Automotive z projektu Gradle w ub-automotive, a następnie dowiesz się, jak zintegrować z samochodem host aplikacji AOSP Automotive App Host. celów.

Sprawdź kod

Aby sprawdzić niepołączony kod:

  1. Uruchom to polecenie:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync
    -j4
  2. Aby dowiedzieć się więcej o pracy z kodem źródłowym AOSP, zobacz Zainicjuj klienta Repo.

  3. Zainstaluj Android Studio.

Tworzenie pliku APK hosta AOSP

  1. Sprawdź zadanie ub-automotive, a następnie otwórz projekt Gradle w packages/apps/Car/Templates/Host
  2. Aby skonfigurować w projekcie pakiet SDK na Androida, skonfiguruj w projekcie parametry local.properties. Ścieżka znajduje się w ustawieniach pakietu Android SDK w Androidzie Studio.
    sdk.dir=${path_to_android_sdk_location}
  3. Utwórz główny plik APK jako typowy projekt Gradle. Na przykład uruchom gradle polecenie:
    ./gradlew :app:assembleDebug

    Lokalizacja pliku APK to:

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

Umieszczanie hosta AOSP

  1. Utwórz nowy plik Android.mk, który będzie zawierał 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 pliku APK w tym samym folderze co 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 zawierający:
    <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. W miejscu docelowym dodaj plik konfiguracyjny do miejsc docelowych:
    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

Podczas tworzenia środowiska docelowego host jest instalowany i udzielane są uprawnienia:

      
      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, wyświetl ten projekt GitHub: car-samples/car_app_library.