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:
- Jalankan perintah berikut:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -cq -j4
- Untuk mempelajari lebih lanjut tentang bekerja dengan kode sumber AOSP, lihat Menginisialisasi Klien Repo .
Buat kodenya
Studio Android
Untuk membuat kode di Android Studio:
- Di Android Studio, impor file build ini:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
- Pastikan untuk menyetel Gradle JDK di Android Studio ke setidaknya Versi 11:
Gambar 1. Versi 11. - Bangun APK yang diinginkan.
Garis komando
Untuk membuat kode dari baris perintah:
- Tetapkan lokasi Android SDK dengan salah satu dari dua cara berikut:
- Buat
packages/apps/Car/libs/aaos-apps-gradle-project/local.properties
lalu atur propertisdk.dir
yang ada di dalamnya. Android Studio dapat melakukan ini secara otomatis saat membuka sebuah proyek. Misalnya, gunakansdk.dir=/Users/MY-USERNAME/Library/Android/sdk
.
atau - Setel variabel lingkungan
ANDROID_SDK_ROOT
dengan jalur ke Android SDK.
- Buat
- Buka prompt perintah atau jendela shell.
- Buka
packages/apps/Car/libs/aaos-apps-gradle-project
. - 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 |