Guia de Integração

Este artigo descreve como integrar aplicativos desagregados. Aplicativos que incluem Dialer, Media, Car UI Library e SMS são considerados aplicativos desagregados. Esses aplicativos são desagregados 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.

APKs criados a partir do código desagregado funcionam com diversas 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 .

Construa o código

Estúdio Android

Para construir 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. Crie o APK (ou APKs) desejado.

Linha de comando

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

  1. Defina a localização do Android SDK de uma destas duas maneiras:
    • Crie packages/apps/Car/libs/aaos-apps-gradle-project/local.properties e 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/aaos-apps-gradle-project
  4. Execute o seguinte comando:
    ./gradlew assemble

Níveis mínimos de API exigidos

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

Aplicativo Nível mínimo de API
Calendário 29
Biblioteca de UI do carro 29
Dispositivo complementar 29
Discador 31
meios de comunicação 30
SMS 30
Anfitrião AOSP 29

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

Imagens do Android 13 e superior

O código desagregado foi removido da plataforma Android 13. Portanto, adicionar APKs pré-construídos em compilações de plataforma pode ser necessário para:

  • Teste de conformidade CDD
  • Provisionando aplicativos privilegiados

Isso é conseguido 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 inferior

Desde que a versão da plataforma Android seja suportada pelo aplicativo (veja tabela acima), o APK pode ser adicionado a essa imagem do sistema. No entanto, a maioria dos aplicativos desagregados tem versões anteriores do código-fonte incluídas em plataformas anteriores ao Android 13. Por padrão, Soong dá precedência ao código-fonte sobre um pré-construído. Portanto, é necessário definir a flag 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
Anfitrião AOSP X
meios de comunicação X
SMS X
Distribuição de atualização OTA OTA ou Play Store OTA ou Play Store