Paketten çıkarılan uygulamaları entegre etme

Çevirici, Medya, Araba Kullanıcı Arayüzü Kitaplığı ve SMS'i içeren uygulamalar ayrı uygulamalar (Android platformundan ayrılmış) olarak kabul edilir. Bu tür uygulamalar, telefondaki yardımcı uygulamadan veri alma mantığını ve ilişkilendirme ile özellik kaydı ayarları da dahil olmak üzere araba tarafındaki kullanıcı deneyimini içerir. Paketlenmemiş koddan oluşturulan APK'lar, platformun çeşitli sürümleriyle çalışır.

Koda göz atma

Paketlenmemiş kodu incelemek için aşağıdakileri çalıştırın:

repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4

AOSP kaynak koduyla çalışma hakkında daha fazla bilgi edinmek için Repo istemcisini başlatma başlıklı makaleyi inceleyin.

Kodu oluşturma

Kodu Android Studio'yu kullanarak veya komut satırından oluşturabilirsiniz.

Android Studio

Android Studio'da kodu oluşturmak için:

  1. Android Studio'da aşağıdaki derleme dosyasını içe aktarın:

    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
    
  2. Gradle JDK'nın 11 veya sonraki bir sürüme ayarlandığından emin olun:

    Sürüm 11

    Şekil 1. Android Studio'da Gradle JDK'yı 11. sürüme ayarlayın.

Komut satırı

Kodu komut satırından oluşturmak için:

  1. Aşağıdaki yöntemlerden birini kullanarak Android SDK konumunu ayarlayın:

    • packages/apps/Car/libs/aaos-apps-gradle-project/local.properties oluşturun ve ardından içerdiği sdk.dir özelliğini ayarlayın. Android Studio, bir projeyi açarken bu işlemi otomatik olarak yapabilir. Örneğin, sdk.dir=/Users/MY-USERNAME/Library/Android/sdk kullanın.

      veya

    • ANDROID_SDK_ROOT ortam değişkenini Android SDK'sının yoluyla ayarlayın.

  2. Bir komut istemi veya kabuk penceresi açın.

  3. packages/apps/Car/libs/aaos-apps-gradle-project adresine gidin.

  4. Aşağıdaki komutu çalıştırın:

    ./gradlew assemble

Gerekli minimum API düzeyleri

Her bağımsız uygulama, minSdkVersion sürümüne eşit veya daha yeni bir Android platformda çalışır. Aşağıdaki tabloda, her uygulama tarafından desteklenen minimum API sürümü listelenmiştir:

Uygulama Minimum API düzeyi
Takvim 29
Araba kullanıcı arayüzü kitaplığı 29
CompanionDevice 29
Dialer 31
Medya 30
Messenger (SMS) 30
AOSP Host 29
Uygulama Kilidi 34

Önceden oluşturulmuş bir öğeyi sistem görüntüsüne entegre etme

Android platform sürümü uygulama tarafından destekleniyorsa (önceki bölümdeki tabloya bakın) APK'yı sistem görüntüsüne ekleyebilirsiniz. Ancak entegrasyon adımları Android platform sürümleri arasında farklılık gösterir.

Android 13 ve sonraki sürümler

Android 13 ve sonraki sürümlerde, paketlenmemiş uygulamaların kaynak kodu bulunmaz. Ancak CDD uygunluk testi veya ayrıcalıklı uygulamaları sağlama gibi kullanım alanları için platform derlemesine önceden oluşturulmuş bir APK ekleyebilirsiniz. APK'yı belirtmek için aşağıdaki örnekte gösterildiği gibi android_app_import Soong kuralını kullanın:

android_app_import {
    name: "CarMediaApp",
    apk: "CarMediaApp.apk",
    privileged: true,
    certificate: "platform", // Media must be signed by the platform
    required: ["allowed_privapp_com.android.car.media"],
}

Android 12 ve önceki sürümler

Android 12 ve önceki sürümlerde, paketlenmemiş uygulamaların kaynak kodu bulunur ancak yine de dahil edilecek önceden oluşturulmuş bir APK belirtebilirsiniz. Soong'un varsayılan davranışı, önceden oluşturulmuş bir öğeye göre kaynak koduna öncelik vermek olduğundan aşağıdaki örnekte gösterildiği gibi prefer kuralı içinde prefer işaretini true olarak ayarlamak gerekir:android_app_import

android_app_import {
    name: "CarDialerApp",
    apk: "CarDialerApp.apk",
    privileged: true,
    presigned: true, // Dialer can have its own signature
    required: ["allowed_privapp_com.android.car.dialer"],
    overrides: ["Dialer"],
    prefer: true, // The prebuilt replaces a source target with the same name
}

Paket halinde sunulmayan uygulama ayrıntıları

Uygulama Ayrıcalıklı ayrılmış
sistem imzalı
Ayrıcalıklı, paketlenmemiş
sistem dışı imzalı
Paketinden çıkarılmış
uygulamaların sistem bölümünde olması gerekmez
Güncellemeleri dağıtma OTA OTA veya Google Play OTA veya Google Play
AOSP Host X
Takvim X
CompanionDeviceSupport X
Kontrol merkezi (çoklu ekran) X
Çevirici X
Medya X
Messenger (SMS) X
Hassas uygulama kilidi X