Le app che includono Telefono, Media, la libreria dell'interfaccia utente dell'auto e SMS sono considerate app non in bundle (ovvero non sono in bundle con la piattaforma Android). Queste app includono la logica per la ricezione dei dati dall'app complementare per smartphone e l'esperienza utente sull'auto, incluse le impostazioni per l'associazione e la registrazione delle funzionalità. Gli APK creati dal codice non in bundle funzionano con diverse versioni della piattaforma.
Controlla il codice
Per controllare il codice non in bundle, esegui quanto segue:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-masterrepo 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.gradleAssicurati che l'JDK di Gradle sia impostato sulla versione 11 o successive:
Figura 1. Imposta l'JDK di Gradle 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.propertiese poi imposta la proprietàsdk.dirche contiene. Android Studio può farlo automaticamente quando apri un progetto. Ad esempio, utilizzasdk.dir=/Users/MY-USERNAME/Library/Android/sdk.o
Imposta la variabile di ambiente
ANDROID_SDK_ROOTcon 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 non in bundle funziona su piattaforme Android con una versione uguale o superiore
a
minSdkVersion. La tabella seguente elenca la versione API minima supportata da ogni app:
| App | Livello API minimo |
|---|---|
| Calendar | 29 |
| Libreria dell'interfaccia utente dell'auto | 29 |
| CompanionDevice | 29 |
| Telefono | 31 |
| Media | 30 |
| Messenger (SMS) | 30 |
| Host AOSP | 29 |
| Blocco app | 34 |
Integra un'app predefinita 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 in bundle, ma puoi includere un APK predefinito 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
android_app_import regola 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 in bundle, ma puoi comunque specificare un APK predefinito da includere. Poiché l'impostazione predefinita di Soong è di dare la precedenza al codice sorgente rispetto a un'app predefinita, è 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 non in bundle
| App | App non in bundle con privilegi sistema firmata |
App non in bundle con privilegi non-system firmata |
App non in bundle non deve essere nella partizione di sistema |
|---|---|---|---|
| Aggiorna la distribuzione | OTA | OTA o Google Play | OTA o Google Play |
| Host AOSP | X | ||
| Calendar | X | ||
| CompanionDeviceSupport | X | ||
| Centro di controllo (multidisplay) | X | ||
| Telefono | X | ||
| Media | X | ||
| Messenger (SMS) | X | ||
| Blocco delle app sensibili | X |