AOSP ana bilgisayar entegrasyon kılavuzu

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

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

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

Bu sayfada ub-automotive dalındaki Gradle projesinden AOSP Otomotiv Uygulama Sunucusunun nasıl oluşturulacağı ve ardından AOSP Otomotiv Uygulama Sunucusunun araç hedeflerine nasıl entegre edileceği açıklanmaktadır.

Kodu inceleyin

Paketlenmemiş 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 bkz . Repo istemcisini başlatma .

  3. Android Studio'yu yükleyin.

AOSP ana bilgisayar APK'sını oluşturun

  1. ub-automotive göz atın ve ardından packages/apps/Car/Templates/Host altında Gradle projesini açın.
  2. Projeyi Android SDK ile yapılandırmak için projenizin local.properties dosyasını yapılandırın. Yolu Android Studio'daki Android SDK Ayarları altında bulabilirsiniz.
    sdk.dir=${path_to_android_sdk_location}
    
  3. Ana bilgisayar APK'sını 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 bilgisayarını 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 AOSPHost.apk olarak yeniden adlandırın ve APK'yı Android.mk ile aynı klasöre koyun.
  3. CarAOSPHost modülünü hedeflerinize PRODUCT_PACKAGES olarak ekleyin:
    PRODUCT_PACKAGES += \
       CarAOSPHost \
    

İzin yapılandırmasını ekleyin

  1. Aşağıdakileri içerecek şekilde 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şturun

Hedefi oluşturduğunuzda ana bilgisayar kurulur 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 edin

Örnekleri oluşturmak ve yüklemek için car-samples/car_app_library adlı GitHub projesine bakın.