AOSP ana makine entegrasyon kılavuzu

Android Açık Kaynak Projesi (AOSP) Automotive App Host, Araba Uygulaması Kitaplığı'nın bir parçasıdır. 3. taraf geliştiriciler tarafından Android Automotive'e yönelik uygulamaları etkinleştirmek için kullanılır. Uygulama Barındırıcısı, 3. taraf araç uygulamalarının, OEM tarzı kullanıcı arayüzü (UI) bileşenlerini kendi adına oluşturmasına olanak tanıyan uygulama.

Üçüncü taraf uygulamalarını çalıştırmak için hem üçüncü taraf uygulaması hem de AOSP Automotive App Host olmalıdır. yüklendi:

  • Automotive App Host, bir dizi kullanıcı arayüzü şablonu ve bileşeni ile 3. taraf uygulamaları sağlar araçlar için optimize edilmiştir. Buna kullanılabilirlik ve güvenlik gibi özellikler dahildir.
  • OEM'ler bu kullanıcı arayüzü şablonlarını ve bileşenlerini biçimlendirebilir.
  • Sonuç nedir? 3. taraf uygulamaları, bilgi-eğlence sistemi kullanıyor.

Bu sayfada, AOSP Automotive App Host'un Gradle projesinden nasıl oluşturulacağı açıklanmaktadır. ub-automotive şubesi ve ardından AOSP Automotive App Host'un arabaya nasıl entegre edileceği belirler.

Kodu inceleyin

Grup halinde olmayan kodu kontrol etmek için:

  1. Aşağıdaki komutu çalıştırın:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -j4
    
    .
  2. AOSP kaynak koduyla çalışma hakkında daha fazla bilgi edinmek için Repo istemcisini başlatın.

  3. Android Studio'yu yükleyin.

AOSP ana makine APK'sını oluşturma

  1. ub-automotive uygulamasına göz atın ve Gradle projesini şurada açın: packages/apps/Car/Templates/Host.
  2. Projeyi Android SDK ile yapılandırmak için projenizin local.properties dosyası yükleyin. Yolu Android'de Android SDK Ayarları bölümünde bulabilirsiniz Stüdyo'yu seçin.
    sdk.dir=${path_to_android_sdk_location}
    
  3. Ana makine APK'sını tipik bir Gradle projesi olarak oluşturun. Örneğin, şunu çalıştırın: gradle komut:
    ./gradlew :app:assembleDebug
    

    APK dosyası şu konumdadır:

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

AOSP ana makinesini yerleştirme

  1. Aşağıdaki içeriği içerecek yeni bir Android.mk dosyası oluşturun:
    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. app-debug.apk öğesinin adını AOSPHost.apk olarak değiştirin ve APK'yı Android.mk ile aynı klasör.
  3. CarAOSPHost modülünü hedeflerinize PRODUCT_PACKAGES olarak ekleyin:
    PRODUCT_PACKAGES += \
       CarAOSPHost \
    

İzin yapılandırmasını ekleme

  1. Aşağıdakileri içerecek com.android.car.templates.host.xml adlı bir dosya oluşturun:
    <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. Hedefinizde, yapılandırma dosyasını hedeflerinize ekleyin:
    PRODUCT_COPY_FILES += \
        <the file root>/com.android.car.templates.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.car.templates.host.xml
    
    .

Hedefi oluşturma

Hedefi oluşturduğunuzda ana makine yüklenir ve izin verilir:

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

Entegrasyonu test etme

Örnekleri derleyip yüklemek için şu GitHub projesine bakın: araba-ornekler/araba_uygulama_kitapligi.