Panduan Integrasi

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:

  1. Jalankan yang berikut ini:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -cq -j4
    
  2. Untuk mempelajari lebih lanjut tentang bekerja dengan kode sumber AOSP, lihat Menginisialisasi Klien Repo .

Buat kodenya

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

    Versi 11
    Gambar 1. Versi 11
  3. Bangun APK (atau APK) yang diinginkan.

Garis komando

Untuk membuat kode dari baris perintah:

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

      atau,
    • Setel variabel lingkungan ANDROID_SDK_ROOT dengan jalur ke Android SDK.
  2. Buka prompt perintah atau jendela shell.
  3. Buka packages/apps/Car/libs/unbundled-apps-gradle-project
  4. 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