Integrare le app slegate

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:

  1. In Android Studio, importa il seguente file di build:

    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
    
  2. Assicurati che Gradle JDK sia impostato sulla versione 11 o successive:

    Versione 11

    Figura 1. Imposta Gradle JDK sulla versione 11 in Android Studio.

Riga di comando

Per creare il codice dalla riga di comando:

  1. 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, usa 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. 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