Artikel ini menguraikan cara mengintegrasikan aplikasi yang tidak dibundel. Aplikasi yang menyertakan Dialer, Media, Perpustakaan UI Mobil, dan SMS dianggap sebagai aplikasi yang tidak dibundel. Aplikasi ini dipisahkan dari platform Android dan menyertakan logika untuk menerima data dari aplikasi Companion ponsel dan UX di sisi mobil, termasuk pengaturan untuk asosiasi 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 yang berikut ini:
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
Android Studio
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:
- Bangun APK (atau APK) yang diinginkan.
Garis komando
Untuk membuat kode dari baris perintah:
- Setel lokasi Android SDK dengan salah satu dari dua cara berikut:
- Buat
packages/apps/Car/libs/aaos-apps-gradle-project/local.properties
dan kemudian atur propertisdk.dir
yang dikandungnya. Android Studio dapat melakukan ini secara otomatis saat membuka 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/unbundled-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 besar dari minSdkVersion
. Tabel berikut mencantumkan versi API minimum yang didukung oleh setiap aplikasi:
Aplikasi | Tingkat API minimum |
---|---|
Kalender | 29 |
Perpustakaan Ui Mobil | 29 |
Perangkat Pendamping | 29 |
telepon | 31 |
Media | 30 |
SMS | 30 |
Host Aplikasi Google Otomotif | 29 |
Mengintegrasikan pra-pembuatan ke dalam citra sistem
Gambar Android 13 dan di atasnya
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 istimewa
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 di bawah
Selama versi platform Android didukung oleh aplikasi (lihat tabel di atas), APK dapat ditambahkan ke citra sistem tersebut. Namun, sebagian besar aplikasi yang tidak dibundel memiliki versi kode sumber sebelumnya yang disertakan dalam platform yang lebih lama dari Android 13. Secara default, Soong mengutamakan kode sumber daripada yang dibuat sebelumnya. Oleh karena itu, perlu 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 terdaftar menurut tipe yang tidak dibundel
Aplikasi | Keistimewaan tidak dibundel | Tidak terikat (Tidak perlu di partisi sistem) | |
---|---|---|---|
Sistem ditandatangani | Non-sistem ditandatangani | ||
Kalender | X | ||
Perangkat Pendamping | X | ||
telepon | X | ||
Host Aplikasi Google Otomotif | X | ||
Media | X | ||
SMS | X | ||
Perbarui distribusi | OTA | OTA atau Play Store | OTA atau Play Store |