AOSP ana makine entegrasyon kılavuzu

Android Açık Kaynak Projesi (AOSP) Automotive App Host, Android Automotive için uygulamaları etkinleştirmek amacıyla üçüncü taraf geliştiriciler tarafından kullanılan Car App Library'nin bir parçasıdır. Uygulama Ana Makinası, 3. taraf araba uygulamalarının OEM tarzı kullanıcı arayüzü (UI) bileşenlerini kendi adına oluşturmasına olanak tanıyan bir sistem uygulamasıdır.

Üçüncü taraf uygulamalarını çalıştırmak için hem üçüncü taraf uygulamasının hem de AOSP Automotive App Host'ın yüklü olması gerekir:

  • Automotive App Host, üçüncü taraf uygulamalarına kullanılabilirlik ve güvenlik gibi özellikler de dahil olmak üzere araçlar için optimize edilmiş bir dizi kullanıcı arayüzü şablonu ve bileşeni sağlar.
  • OEM'ler bu kullanıcı arayüzü şablonlarına ve bileşenlerine stil verebilir.
  • Sonuç? Üçüncü taraf uygulamaları, OEM'nin bilgi-eğlence sistemine görsel olarak iyi entegre olmalıdır.

Bu sayfada, ub-automotive dalındaki Gradle projesinden AOSP Automotive App Host'in nasıl oluşturulacağı ve ardından AOSP Automotive App Host'in araç hedeflerine nasıl entegre edileceği açıklanmaktadır.

Kodu kontrol edin

Paketten çıkarılan 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 istemcisi başlatma başlıklı makaleyi inceleyin.

  3. Android Studio'yu yükleyin.

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

  1. ub-automotive bölümüne göz atın ve ardından packages/apps/Car/Templates/Host altındaki Gradle projesini açın.
  2. Projeyi Android SDK'sıyla yapılandırmak için projenizin local.properties dosyasını yapılandırın. Yolu Android Studio'daki Android SDK Ayarları bölümünde bulabilirsiniz.
    sdk.dir=${path_to_android_sdk_location}
  3. Barındırıcı APK'yı tipik bir Gradle projesi olarak oluşturun. Örneğin, gradle komutunu çalıştırın:
    ./gradlew :app:assembleDebug

    APK dosyası şu konumda bulunur:

    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 şekilde 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 dosyasını AOSPHost.apk olarak yeniden adlandırın ve APK'yı Android.mk ile aynı klasöre yerleştirin.
  3. CarAOSPHost modülünü hedeflerinize PRODUCT_PACKAGES olarak ekleyin:
    PRODUCT_PACKAGES += \
       CarAOSPHost \

İzin yapılandırmasını ekleme

  1. Aşağıdakileri içeren 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. Hedefinize yapılandırma dosyasını 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 derlemek ve yüklemek için car-samples/car_app_library GitHub projesine bakın.