Guia de Integração

Este artigo descreve como integrar aplicativos desagregados. Os aplicativos que incluem Discador, Mídia, Biblioteca de IU do carro e SMS são considerados aplicativos desagrupados. Esses aplicativos são separados da plataforma Android e incluem a lógica para receber dados do aplicativo Companion do telefone e UX no lado do carro, incluindo configurações para associação e registro de recursos.

Os APKs criados a partir do código desagregado funcionam com várias versões da plataforma.

Confira o código

Para verificar o código desagregado:

  1. Execute o seguinte:
    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 código-fonte AOSP, consulte Inicializando um cliente de repositório .

Construir o código

Android Studio

Para compilar o código no Android Studio:

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

    Versão 11
    Figura 1. Versão 11
  3. Compile o APK (ou APKs) desejado.

Linha de comando

Para construir o código a partir da linha de comando:

  1. Defina o local do SDK do Android de uma destas duas maneiras:
    • Crie packages/apps/Car/libs/aaos-apps-gradle-project/local.properties e então defina a propriedade sdk.dir que ela 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 Android SDK.
  2. Abra um prompt de comando ou uma janela de shell.
  3. Vá para packages/apps/Car/libs/unbundled-apps-gradle-project
  4. Execute o seguinte comando:
    ./gradlew assemble

Níveis mínimos de API necessários

Cada aplicativo desagregado funciona em plataformas Android com uma versão igual ou superior à minSdkVersion . A tabela a seguir lista a versão mínima da API compatível com cada aplicativo:

Aplicativo Nível mínimo da API
Calendário 29
Biblioteca de interface do carro 29
Dispositivo Complementar 29
Discador 31
meios de comunicação 30
SMS 30
Host de aplicativos automotivos do Google 29

Integrando uma pré-compilação em uma imagem do sistema

Imagens do Android 13 e superior

O código desagregado é removido da plataforma Android 13. Portanto, pode ser necessário adicionar APKs pré-criados em versões de plataforma para:

  • Teste de conformidade CDD
  • Provisionamento de aplicativos privilegiados

Isso é feito com a regra android_app_import 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 abaixo

Desde que a versão da plataforma Android seja compatível com o aplicativo (veja a tabela acima), o APK pode ser adicionado a essa imagem do sistema. No entanto, a maioria dos aplicativos desagrupados tem versões anteriores do código-fonte incluídas em plataformas anteriores ao Android 13. Por padrão, Soong dá prioridade ao código-fonte sobre um pré-criado. Portanto, é necessário definir o sinalizador prefer como 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,
    }

Aplicativos listados de acordo com o tipo desagregado

Aplicativo Privilegiado desagregado Desagrupado
(Não precisa estar na partição do sistema)
Sistema assinado Não assinado pelo sistema
Calendário X
Dispositivo Complementar X
Discador X
Host de aplicativos automotivos do Google X
meios de comunicação X
SMS X
Atualizar distribuição OTA OTA ou Play Store OTA ou Play Store