Guida all'integrazione

Questa pagina illustra come integrare le app non raggruppate. App che includono Telefono, Contenuti multimediali, UI dell'auto Raccolta e SMS sono considerate app non raggruppate. Queste app non sono raggruppate dalla piattaforma Android e includere la logica per ricevere i dati dall'app complementare sullo smartphone e dall'esperienza utente sul lato dell'auto, incluse le impostazioni per l'associazione e la registrazione delle funzionalità.

Gli APK creati a partire dal codice non integrato funzionano con diverse versioni della piattaforma.

Controlla il codice

Per controllare il codice non in bundle:

  1. Esegui questo comando:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -cq -j4
    
  2. Per scoprire di più sull'utilizzo del codice sorgente AOSP, vedi Inizializzazione di un client repository.

Crea il codice

Android Studio

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 il JDK di Gradle in Android Studio almeno sulla versione 11:


    Figura 1. Versione 11.
  3. Crea gli APK che vuoi.

Riga di comando

Per creare il codice dalla riga di comando:

  1. Imposta la posizione dell'SDK Android in uno dei due modi seguenti:
    • 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 di 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 non in bundle funziona su piattaforme Android con una versione uguale o superiore a quella della relativa app. minSdkVersion. Nella tabella seguente è indicata la versione API minima supportata da ogni app:

App Livello API minimo
Calendar 29
Raccolta di UI dell'auto 29
Dispositivo complementare 29
Telefono 31
Contenuti multimediali 30
SMS 30
Host AOSP 29

Integrazione di una build preliminare in un'immagine di sistema

Immagini Android 13 e versioni successive

Il codice non in bundle viene rimosso dalla piattaforma Android 13. Di conseguenza, potrebbe essere necessaria l'aggiunta di APK predefiniti alle build della piattaforma:

  • Test di conformità CDD
  • Provisioning di app con privilegi

Ciò si ottiene con android_app_import Regola Quickg:

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

Se la versione della piattaforma Android è supportata dall'app (vedi tabella precedente), l'APK può a quell'immagine di sistema. Tuttavia, la maggior parte delle app non in bundle ha versioni precedenti del codice sorgente incluse nelle piattaforme precedenti ad Android 13. Per impostazione predefinita, Takeg fornisce al codice sorgente rispetto a un modello predefinito. Pertanto, è necessario impostare prefer flag a 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 per tipo non in bundle

App Con privilegi non raggruppati Non in bundle
(Non deve essere presente nella partizione di sistema)
Sistema firmato Non firmato dal sistema
Calendar X
Dispositivo complementare X
Telefono X
Host AOSP X
Contenuti multimediali X
SMS X
Aggiorna distribuzione OTA OTA o Google Play OTA o Google Play