Integrare le app slegate

Le app che includono Telefono, Media, la 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 per smartphone e l'esperienza utente sull'auto, incluse le impostazioni per l'associazione e la registrazione delle funzionalità. Gli APK creati dal codice non in bundle funzionano con diverse versioni della piattaforma.

Controlla il codice

Per controllare il codice non in bundle, esegui quanto segue:

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 l'JDK di Gradle sia impostato sulla versione 11 o successive:

    Versione 11

    Figura 1. Imposta l'JDK di Gradle 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 quando apri 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. 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 minSdkVersion. La tabella seguente 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
Media 30
Messenger (SMS) 30
Host AOSP 29
Blocco app 34

Integra un'app predefinita 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 in bundle, ma puoi includere un APK predefinito 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 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 in bundle, ma puoi comunque specificare un APK predefinito da includere. Poiché l'impostazione predefinita di Soong è di dare la precedenza al codice sorgente rispetto a un'app predefinita, è 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 non in bundle

App App non in bundle con privilegi
sistema firmata
App non in bundle con privilegi
non-system firmata
App non in bundle
non deve essere nella partizione di sistema
Aggiorna la distribuzione OTA OTA o Google Play OTA o Google Play
Host AOSP X
Calendar X
CompanionDeviceSupport X
Centro di controllo (multidisplay) X
Telefono X
Media X
Messenger (SMS) X
Blocco delle app sensibili X