Panduan integrasi

Halaman ini menguraikan cara mengintegrasikan aplikasi yang tidak dibundel. Aplikasi yang mencakup Dialer, Media, Car UI Library, dan SMS dianggap sebagai aplikasi yang tidak dibundel. Aplikasi ini tidak dibundel dari platform Android dan menyertakan logika untuk menerima data dari aplikasi pendamping ponsel dan UX di sisi mobil, termasuk pengaturan untuk pengaitan dan pendaftaran fitur.

APK yang dibuat dari kode yang tidak dibundel berfungsi dengan beberapa versi platform.

Lihat kodenya

Untuk memeriksa kode yang tidak dibundel:

  1. Jalankan perintah berikut:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -cq -j4
    
  2. Untuk mempelajari lebih lanjut tentang bekerja dengan kode sumber AOSP, lihat Menginisialisasi Klien Repo .

Buat kodenya

Studio Android

Untuk membuat kode di Android Studio:

  1. Di Android Studio, impor file build ini:
    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
  2. Pastikan untuk menyetel Gradle JDK di Android Studio ke setidaknya Versi 11:


    Gambar 1. Versi 11.
  3. Bangun APK yang diinginkan.

Garis komando

Untuk membuat kode dari baris perintah:

  1. Tetapkan lokasi Android SDK dengan salah satu dari dua cara berikut:
    • Buat packages/apps/Car/libs/aaos-apps-gradle-project/local.properties lalu atur properti sdk.dir yang ada di dalamnya. Android Studio dapat melakukan ini secara otomatis saat membuka sebuah proyek. Misalnya, gunakan sdk.dir=/Users/MY-USERNAME/Library/Android/sdk .

      atau
    • Setel variabel lingkungan ANDROID_SDK_ROOT dengan jalur ke Android SDK.
  2. Buka prompt perintah 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 yang tidak dibundel berfungsi pada platform Android dengan versi yang sama atau lebih tinggi dari minSdkVersion -nya. Tabel berikut mencantumkan versi API minimum yang didukung oleh setiap aplikasi:

Aplikasi Tingkat API minimum
Kalender 29
Perpustakaan UI mobil 29
Perangkat Pendamping 29
Pemanggil 31
Media 30
SMS 30
Tuan Rumah AOSP 29

Mengintegrasikan prebuild ke dalam image sistem

Gambar Android 13 dan lebih tinggi

Kode yang tidak dibundel dihapus dari platform Android 13. Oleh karena itu, menambahkan APK bawaan ke dalam versi platform mungkin diperlukan untuk:

  • Pengujian kepatuhan CDD
  • Menyediakan aplikasi dengan hak istimewa

Hal ini dicapai dengan aturan android_app_import Soong:

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

Selama versi platform Android didukung oleh aplikasi (lihat tabel di atas), APK dapat ditambahkan ke image sistem tersebut. Namun, sebagian besar aplikasi yang tidak dibundel memiliki versi kode sumber sebelumnya yang disertakan dalam platform yang lebih rendah dari Android 13. Secara default, Soong lebih mengutamakan kode sumber dibandingkan yang sudah dibuat sebelumnya. Oleh karena itu, penting untuk menyetel tanda prefer ke true di dalam aturan 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,
    }

Aplikasi dicantumkan menurut jenis yang tidak dibundel

Aplikasi Hak istimewa tidak dibundel Tidak dibundel
(Tidak perlu berada di partisi sistem)
Sistem ditandatangani Non-sistem ditandatangani
Kalender X
Perangkat Pendamping X
Pemanggil X
Tuan Rumah AOSP X
Media X
SMS X
Perbarui distribusi OTA OTA atau Google Play OTA atau Google Play