Integrare le app non raggruppate

Le app che includono Telefono, Media, 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 dello smartphone e l'esperienza utente sul lato dell'auto, incluse le impostazioni per l'associazione e la registrazione delle funzionalità. Gli APK costruiti da codice non pacchettizzato funzionano con diverse versioni della piattaforma.

Controlla il codice

Per controllare il codice non raggruppato, esegui quanto segue:

repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4

Per scoprire di più sull'utilizzo del codice sorgente AOSP, consulta Inizializza il RepoClient.

Compila il codice

Puoi compilare il codice utilizzando Android Studio o dalla riga di comando.

Android Studio

Per compilare 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 la versione JDK di Gradle sia impostata su 11 o versioni successive:

    Versione 11

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

Riga di comando

Per compilare 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 in essa contenuta. Android Studio può eseguire questa operazione automaticamente quando apri 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 il seguente comando:

    ./gradlew assemble

Livelli API minimi richiesti

Ogni app sfusa funziona su piattaforme Android con una versione uguale o superiore alla sua minSdkVersion. La tabella riportata di seguito 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
Contenuti multimediali 30
Messenger (SMS) 30
Host AOSP 29

Integrare un prebuild 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 sono diversi a seconda della versione della piattaforma Android.

Android 13 e versioni successive

Android 13 e versioni successive non includono il codice sorgente per le app scomposte, ma puoi includere un APK precompilato nella build della piattaforma per casi d'uso come i test di conformità ai 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 pacchettizzate, ma puoi comunque specificare un APK precompilato da includere. Poiché il valore predefinito di Soong è dare la precedenza al codice sorgente rispetto a un 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 slegate

App/distribuzione
Sistema firmato con privilegi non raggruppati
Con privilegi sganciati
non firmato di sistema
I pacchetti scorporati
non devono essere nella partizione di sistema
App - Calendar X
App - CompanionDeviceSupport X
App - Telefono X
App - Host AOSP X
App - Contenuti multimediali X
App: Messenger (SMS) X
Aggiorna distribuzione OTA OTA o Google Play OTA o Google Play