Le app che includono Dialer, Media, libreria dell'interfaccia utente dell'auto e SMS sono considerate app separate (ovvero, sono separate dalla piattaforma Android). Queste app includono la logica per la ricezione dei dati dall'app complementare per smartphone e l'esperienza utente sul lato auto, incluse le impostazioni per l'associazione e la registrazione alle funzionalità. Gli APK creati da codice non raggruppato funzionano con diverse versioni della piattaforma.
Controlla il codice
Per estrarre il codice separato, esegui questo comando:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4
Per scoprire di più su come lavorare con il codice sorgente AOSP, consulta Inizializzare il client Repo.
Crea il codice
Puoi creare il codice utilizzando Android Studio o dalla riga di comando.
Android Studio
Per creare il codice in Android Studio:
In Android Studio, importa il seguente file di build:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
Assicurati che Gradle JDK sia impostato sulla versione 11 o successive:
Figura 1. Imposta Gradle JDK sulla versione 11 in Android Studio.
Riga di comando
Per creare il codice dalla riga di comando:
Imposta la posizione dell'SDK Android utilizzando uno dei seguenti metodi:
Crea
packages/apps/Car/libs/aaos-apps-gradle-project/local.properties
e poi imposta la proprietàsdk.dir
che contiene. Android Studio può farlo automaticamente all'apertura di un progetto. Ad esempio, usasdk.dir=/Users/MY-USERNAME/Library/Android/sdk
.o
Imposta la variabile di ambiente
ANDROID_SDK_ROOT
con il percorso dell'SDK Android.
Apri un prompt dei comandi o una finestra della shell.
Vai a
packages/apps/Car/libs/aaos-apps-gradle-project
.Esegui questo comando:
./gradlew assemble
Livelli API minimi richiesti
Ogni app separata funziona su piattaforme Android con una versione uguale o superiore
alla relativa
minSdkVersion
. La
tabella seguente elenca la versione API minima supportata da ciascuna app:
App | Livello API minimo |
---|---|
Calendar | 29 |
Libreria dell'interfaccia utente dell'auto | 29 |
CompanionDevice | 29 |
Telefono | 31 |
Contenuti multimediali | 30 |
Messenger (SMS) | 30 |
AOSP Host | 29 |
Integrare una precompilazione in un'immagine di sistema
Se la versione della piattaforma Android è supportata dall'app (vedi la tabella nella sezione precedente), puoi aggiungere l'APK all'immagine di sistema. Tuttavia, i passaggi di integrazione variano a seconda delle versioni della piattaforma Android.
Android 13 e versioni successive
Android 13 e versioni successive non includono il codice sorgente per le app non raggruppate, ma puoi includere un APK precompilato nella build della piattaforma per casi d'uso come i test di conformità CDD o il provisioning di app con privilegi. Per specificare l'APK, utilizza la regola
android_app_import
Soong, come mostrato nell'esempio seguente:
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 e versioni precedenti
Android 12 e versioni precedenti includono il codice sorgente per le app non raggruppate, ma puoi comunque
specificare un APK precompilato da includere. Poiché l'impostazione predefinita di Soong è quella di dare
la precedenza al codice sorgente rispetto a un codice precompilato, è necessario impostare il
flag prefer
su true
all'interno della regola android_app_import
, come mostrato nell'esempio
seguente:
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
}
Dettagli delle app separate
App/Distribuzione | Privileged unbundled system signed |
Privilegiato non raggruppato non di sistema firmato |
Unbundled non devono trovarsi nella partizione di sistema |
---|---|---|---|
App - Calendar | X | ||
App - CompanionDeviceSupport | X | ||
App - Telefono | X | ||
App - AOSP Host | X | ||
App - Media | X | ||
App - Messenger (SMS) | X | ||
Aggiornamento della distribuzione | OTA | OTA o Google Play | OTA o Google Play |