Halaman ini menjelaskan cara mengintegrasikan aplikasi yang tidak dipaketkan. Aplikasi yang menyertakan Telepon, Media, UI Mobil Library, dan SMS dianggap sebagai aplikasi yang tidak dipaketkan. Aplikasi ini tidak dipaketkan dari platform Android dan menyertakan logika untuk menerima data dari aplikasi pendamping ponsel dan UX di sisi mobil, termasuk setelan untuk pengaitan dan pendaftaran fitur.
APK yang dibuat dari kode yang tidak dipaketkan berfungsi dengan beberapa versi platform.
Melihat kode
Untuk melihat kode yang tidak dipaketkan:
- 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.
Membangun kode
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 JDK Gradle di Android Studio setidaknya ke Versi 11:
Gambar 1. Versi 11. - Buat APK yang diinginkan.
Command line
Untuk membuat kode dari command line:
- Tetapkan lokasi Android SDK dengan salah satu dari dua cara berikut:
- Buat
packages/apps/Car/libs/aaos-apps-gradle-project/local.properties
dan lalu tetapkan propertisdk.dir
yang ada di dalamnya. Android Studio dapat melakukannya secara otomatis saat membuka proyek. Misalnya, gunakansdk.dir=/Users/MY-USERNAME/Library/Android/sdk
.
atau - Tetapkan variabel lingkungan
ANDROID_SDK_ROOT
dengan jalur ke Android SDK.
- Buat
- 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 yang tidak dipaketkan berfungsi di platform Android dengan versi yang sama dengan atau lebih baru dari versi tersebut
minSdkVersion
. Tabel berikut mencantumkan versi API minimum yang didukung oleh setiap aplikasi:
Aplikasi | Tingkat API minimum |
---|---|
Kalender | 29 |
Library UI Mobil | 29 |
Perangkat Pendamping | 29 |
Dialer | 31 |
Media | 30 |
SMS | 30 |
Host AOSP | 29 |
Mengintegrasikan prebuild ke dalam image sistem
Gambar Android 13 dan yang lebih tinggi
Kode yang tidak dipaketkan dihapus dari platform Android 13. Oleh karena itu, penambahan APK bawaan ke dalam build platform mungkin diperlukan untuk:
- Pengujian kepatuhan CDD
- Menyediakan aplikasi dengan hak istimewa
Hal ini dicapai dengan
android_app_import
Aturan 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 yang lebih lama
Selama versi platform Android didukung oleh aplikasi (lihat tabel di atas), APK dapat
ditambahkan ke image sistem tersebut. Namun, sebagian besar aplikasi yang tidak dipaketkan memiliki versi kode sumber sebelumnya
disertakan di platform yang lebih rendah dari Android 13. Secara {i>default<i}, Soong memberi
mendahulukan kode sumber daripada kode bawaan. Oleh karena itu, Anda perlu menyetel
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 yang dicantumkan menurut jenis yang tidak dipaketkan
Aplikasi | Tidak dipaketkan dengan hak istimewa | Tidak dipaket (Tidak perlu berada di partisi sistem) |
|
---|---|---|---|
Ditandatangani oleh sistem | Tidak ditandatangani sistem | ||
Kalender | X | ||
Perangkat Pendamping | X | ||
Dialer | X | ||
Host AOSP | X | ||
Media | X | ||
SMS | X | ||
Distribusi update | OTA | OTA atau Google Play | OTA atau Google Play |