Guia de integração

Esta página descreve como integrar apps desagrupados. Apps que incluem Telefone, Mídia e interface do carro e SMS são considerados apps desagrupados. Esses apps são desagrupados da Plataforma Android e incluir a lógica para receber dados do app complementar do smartphone e UX no lado do carro, incluindo configurações de associação e inscrição em recursos.

Os APKs criados com base no código desagrupado funcionam com várias versões da plataforma.

Conferir o código

Para conferir o código desagrupado:

  1. Execute o comando a seguir:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -cq -j4
    
  2. Para saber mais sobre como trabalhar com o código-fonte do AOSP, consulte Como inicializar um cliente do Repo.

Criar o código

Android Studio

Para criar o código no Android Studio:

  1. No Android Studio, importe este arquivo de build:
    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
  2. Defina o Gradle JDK no Android Studio como pelo menos a versão 11:


    Figura 1. Versão 11.
  3. Crie os APKs desejados.

Linha de comando

Para criar o código na linha de comando:

  1. Defina o local do SDK do Android de uma destas duas maneiras:
    • Criar packages/apps/Car/libs/aaos-apps-gradle-project/local.properties e e defina a propriedade sdk.dir que ele contém. O Android Studio pode fazer isso automaticamente ao abrir um projeto. Por exemplo, use sdk.dir=/Users/MY-USERNAME/Library/Android/sdk:

      ou
    • Defina a variável de ambiente ANDROID_SDK_ROOT com o caminho para o SDK do Android.
  2. Abra um prompt de comando ou uma janela do shell.
  3. Acesse packages/apps/Car/libs/aaos-apps-gradle-project.
  4. Execute este comando:
    ./gradlew assemble

Níveis mínimos de API necessários

Cada app desagrupado funciona em plataformas Android com uma versão igual ou maior que a minSdkVersion: A tabela abaixo lista a versão mínima da API com suporte em cada app:

App Nível mínimo da API
Agenda 29
Biblioteca de interface do carro 29
CompanionDevice 29
Telefone 31
Mídia 30
SMS 30
Host do AOSP 29

Como integrar um pré-build a uma imagem do sistema

Imagens do Android 13 e mais recentes

O código desagrupado será removido da plataforma Android 13. Portanto, a adição de APKs pré-criados a builds de plataforma pode ser necessário para:

  • Teste de conformidade do CDD
  • Provisionamento de apps privilegiados

Isso é conseguido com o android_app_import Regra 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 versões anteriores

Contanto que a versão da plataforma Android seja compatível com o app (consulte a tabela acima), o APK poderá ser adicionado a essa imagem do sistema. No entanto, a maioria dos apps desagrupados tem versões anteriores do código-fonte incluídos em plataformas anteriores ao Android 13. Por padrão, o Soong oferece precedência ao código-fonte em relação a um pré-criado. Portanto, é necessário definir Sinalização prefer para true dentro da regra 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,
    }

Apps listados de acordo com o tipo desagrupado

App Desagrupados privilegiados Desagrupado
(não precisa estar na partição do sistema)
Assinatura do sistema Assinatura que não é do sistema
Agenda X
CompanionDevice X
Telefone X
Host do AOSP X
Mídia X
SMS X
Atualizar distribuição OTA OTA ou Google Play OTA ou Google Play