Guida all'integrazione

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:

  1. Esegui quanto segue:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -cq -j4
    
  2. 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:

  1. In Android Studio, importa questo file di build:
    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
  2. Assicurati di impostare Gradle JDK in Android Studio almeno sulla versione 11:


    Figura 1. Versione 11.
  3. Crea gli APK desiderati.

Riga di comando

Per creare il codice dalla riga di comando:

  1. 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, utilizza sdk.dir=/Users/MY-USERNAME/Library/Android/sdk .

      O
    • Imposta la variabile di ambiente ANDROID_SDK_ROOT con il percorso dell'SDK Android.
  2. Apri un prompt dei comandi o una finestra della shell.
  3. Vai a packages/apps/Car/libs/aaos-apps-gradle-project .
  4. 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