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-masterrepo 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:
Di Android Studio, impor file build berikut:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradlePastikan JDK Gradle ditetapkan ke Versi 11 atau yang lebih baru:
Gambar 1. Tetapkan JDK Gradle ke Versi 11 di Android Studio.
Command line
Untuk membuat kode dari command line:
Tetapkan lokasi Android SDK menggunakan salah satu metode berikut:
Buat
packages/apps/Car/libs/aaos-apps-gradle-project/local.properties, lalu tetapkan propertisdk.diryang ada di dalamnya. Android Studio dapat melakukannya secara otomatis saat membuka project. Misalnya, gunakansdk.dir=/Users/MY-USERNAME/Library/Android/sdk.atau
Tetapkan variabel lingkungan
ANDROID_SDK_ROOTdengan jalur ke Android SDK.
Buka command prompt atau jendela shell.
Buka
packages/apps/Car/libs/aaos-apps-gradle-project.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 |