Mengintegrasikan aplikasi yang di-unbundle

Aplikasi yang menyertakan Dialer, Media, Library UI Mobil, dan SMS dianggap sebagai aplikasi terpisah (yaitu, aplikasi tersebut terpisah dari platform Android). Aplikasi tersebut menyertakan logika untuk menerima data dari aplikasi pendamping ponsel dan UX di sisi mobil, termasuk setelan untuk pendaftaran fitur dan asosiasi. APK yang dibuat dari kode terpisah berfungsi dengan beberapa versi platform.

Melihat kode

Untuk melihat kode terpisah, jalankan perintah berikut:

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

Untuk mempelajari lebih lanjut cara menggunakan kode sumber AOSP, lihat Menginisialisasi Klien Repo.

Membuat kode

Anda dapat membuat kode menggunakan Android Studio atau dari command line.

Android Studio

Untuk membuat kode di Android Studio:

  1. Di Android Studio, impor file build berikut:

    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
    
  2. Pastikan JDK Gradle ditetapkan ke Versi 11 atau yang lebih baru:

    Versi 11

    Gambar 1. Tetapkan JDK Gradle ke Versi 11 di Android Studio.

Command line

Untuk membuat kode dari command line:

  1. Tetapkan lokasi Android SDK menggunakan salah satu metode berikut:

    • Buat packages/apps/Car/libs/aaos-apps-gradle-project/local.properties, lalu tetapkan properti sdk.dir yang ada di dalamnya. Android Studio dapat melakukannya secara otomatis saat membuka project. Misalnya, gunakan sdk.dir=/Users/MY-USERNAME/Library/Android/sdk.

      atau

    • Tetapkan variabel lingkungan ANDROID_SDK_ROOT dengan jalur ke Android SDK.

  2. Buka command prompt atau jendela shell.

  3. Buka packages/apps/Car/libs/aaos-apps-gradle-project.

  4. Jalankan perintah berikut:

    ./gradlew assemble

Level API minimum yang diperlukan

Setiap aplikasi terpisah berfungsi di platform Android dengan versi yang sama dengan atau lebih besar dari `minSdkVersion`minSdkVersion. Tabel berikut mencantumkan versi API minimum yang didukung oleh setiap aplikasi:

Aplikasi Level API minimum
Kalender 29
Library UI Mobil 29
CompanionDevice 29
Dialer 31
Media 30
Messenger (SMS) 30
Host AOSP 29
Kunci Aplikasi 34

Mengintegrasikan prebuilt ke dalam image sistem

Jika versi platform Android didukung oleh aplikasi (lihat tabel di bagian sebelumnya), Anda dapat menambahkan APK ke image sistem. Namun, langkah-langkah integrasi berbeda antara versi platform Android.

Android 13 dan yang lebih tinggi

Android 13 dan yang lebih tinggi tidak menyertakan kode sumber untuk aplikasi terpisah, tetapi Anda dapat menyertakan APK prebuilt dalam build platform untuk kasus penggunaan seperti pengujian kepatuhan CDD atau penyediaan aplikasi dengan hak istimewa. Untuk menentukan APK, gunakan aturan Soong android_app_import, seperti yang ditunjukkan dalam contoh berikut:

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 dan yang lebih rendah

Android 12 dan yang lebih rendah menyertakan kode sumber untuk aplikasi terpisah, tetapi Anda tetap dapat menentukan APK prebuilt untuk disertakan. Karena default Soong adalah memprioritaskan kode sumber daripada prebuilt, Anda harus menetapkan tanda prefer ke true di dalam aturan android_app_import, seperti yang ditunjukkan dalam contoh berikut:

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
}

Detail aplikasi terpisah

Aplikasi Terpisah dengan hak istimewa
sistem ditandatangani
Terpisah dengan hak istimewa
tidak ditandatangani sistem
Terpisah
tidak perlu berada di partisi sistem
Distribusi pembaruan OTA OTA atau Google Play OTA atau Google Play
Host AOSP X
Kalender X
CompanionDeviceSupport X
Pusat kontrol (Multi-display) X
Dialer X
Media X
Messenger (SMS) X
Kunci aplikasi sensitif X