Panduan integrasi

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:

  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 cara menggunakan kode sumber AOSP, lihat Menginisialisasi Klien Repo.

Membangun kode

Android Studio

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 JDK Gradle di Android Studio setidaknya ke Versi 11:


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

Command line

Untuk membuat kode dari command line:

  1. 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 properti sdk.dir yang ada di dalamnya. Android Studio dapat melakukannya secara otomatis saat membuka proyek. Misalnya, gunakan sdk.dir=/Users/MY-USERNAME/Library/Android/sdk.

      atau
    • Tetapkan variabel lingkungan ANDROID_SDK_ROOT dengan jalur ke Android SDK.
  2. Buka command prompt 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 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