Questa pagina illustra come integrare le app disaggregate. Le app che includono Dialer, Media, Libreria UI auto e SMS sono considerate app disaggregate. Queste app sono separate dalla piattaforma Android e includono la logica per ricevere dati dall'app complementare del telefono e dall'UX sul lato dell'auto, comprese le impostazioni per l'associazione e la registrazione delle funzionalità.
Gli APK creati dal codice disaggregato funzionano con diverse versioni della piattaforma.
Controlla il codice
Per verificare il codice disaggregato:
- Esegui quanto segue:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -cq -j4
- Per ulteriori informazioni sull'utilizzo del codice sorgente AOSP, consulta Inizializzazione di un client Repo .
Costruisci il codice
Studio Android
Per creare il codice in Android Studio:
- In Android Studio, importa questo file di build:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
- Assicurati di impostare Gradle JDK in Android Studio almeno sulla versione 11:
Figura 1. Versione 11. - Crea gli APK desiderati.
Riga di comando
Per creare il codice dalla riga di comando:
- Imposta la posizione dell'SDK Android in uno di questi due modi:
- Crea
packages/apps/Car/libs/aaos-apps-gradle-project/local.properties
e quindi imposta la proprietàsdk.dir
che contiene. Android Studio può farlo automaticamente all'apertura di un progetto. Ad esempio, utilizzasdk.dir=/Users/MY-USERNAME/Library/Android/sdk
.
O - Imposta la variabile di ambiente
ANDROID_SDK_ROOT
con il percorso dell'SDK Android.
- Crea
- Apri un prompt dei comandi o una finestra della shell.
- Vai a
packages/apps/Car/libs/aaos-apps-gradle-project
. - Eseguire il comando seguente:
./gradlew assemble
Livelli API minimi richiesti
Ogni app disaggregata funziona su piattaforme Android con una versione uguale o successiva alla relativa minSdkVersion
. La tabella seguente elenca la versione API minima supportata da ciascuna app:
App | Livello API minimo |
---|---|
Calendario | 29 |
Libreria dell'interfaccia utente dell'auto | 29 |
CompanionDevice | 29 |
Dialer | 31 |
Media | 30 |
sms | 30 |
Ospite dell'AOSP | 29 |
Integrazione di una precompilazione in un'immagine di sistema
Android 13 e immagini successive
Il codice disaggregato viene rimosso dalla piattaforma Android 13. Pertanto, potrebbe essere necessario aggiungere APK predefiniti alle build della piattaforma per:
- Test di conformità CDD
- Provisioning di app privilegiate
Ciò si ottiene con la regola 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 e versioni precedenti
Finché la versione della piattaforma Android è supportata dall'app (vedi tabella sopra), l'APK può essere aggiunto a quell'immagine di sistema. Tuttavia, la maggior parte delle app disaggregate hanno versioni precedenti del codice sorgente incluse in piattaforme inferiori ad Android 13. Per impostazione predefinita, Soong dà la precedenza al codice sorgente rispetto a quello predefinito. Pertanto, è necessario impostare il flag prefer
su true
all'interno della regola 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, }
App elencate in base al tipo disaggregato
App | Disaggregazione privilegiata | Disaggregato (Non è necessario essere sulla partizione di sistema) | |
---|---|---|---|
Sistema firmato | Firmato non di sistema | ||
Calendario | X | ||
CompanionDevice | X | ||
Dialer | X | ||
Ospite dell'AOSP | X | ||
Media | X | ||
sms | X | ||
Aggiorna la distribuzione | OTA | OTA o Google Play | OTA o Google Play |