Integrar apps não agrupados

Os apps que incluem Telefone, Mídia, Biblioteca de IU do carro e SMS são considerados apps desvinculados (ou seja, eles são desvinculados da plataforma Android). Esses apps incluem a lógica para receber dados do app complementar do smartphone e da experiência do usuário no carro, incluindo configurações de associação e registro de recursos. Os APKs criados com código desvinculado funcionam com várias versões da plataforma.

Conferir o código

Para conferir o código desvinculado, execute o seguinte:

repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4

Para saber mais sobre como trabalhar com o código-fonte do AOSP, consulte Inicializar o cliente do Repo.

Criar o código

Você pode criar o código usando o Android Studio ou na linha de comando.

Android Studio

Para criar o código no Android Studio:

  1. No Android Studio, importe o seguinte arquivo de build:

    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
    
  2. Verifique se o Gradle JDK está definido como a versão 11 ou mais recente:

    Versão 11

    Figura 1. Defina o Gradle JDK como a versão 11 no Android Studio.

Linha de comando

Para criar o código na linha de comando:

  1. Defina o local do SDK do Android usando um dos seguintes métodos:

    • Crie packages/apps/Car/libs/aaos-apps-gradle-project/local.properties 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 desvinculado funciona em plataformas Android com uma versão igual ou maior que a minSdkVersion. A tabela a seguir lista a versão mínima da API com suporte para cada app:

App Nível mínimo da API
Agenda 29
Biblioteca de IU do carro 29
CompanionDevice 29
Telefone 31
Mídia 30
Mensagens (SMS) 30
Host do AOSP 29
Bloqueio de apps 34

Integrar um pré-criado em uma imagem do sistema

Se a versão da plataforma Android for compatível com o app (consulte a tabela na seção anterior), você poderá adicionar o APK à imagem do sistema. No entanto, as etapas de integração variam entre as versões da plataforma Android.

Android 13 e versões mais recentes

O Android 13 e versões mais recentes não incluem código-fonte para apps desvinculados, mas você pode incluir um APK pré-criado no build da plataforma para casos de uso, como testes de conformidade com o CDD ou provisionamento de apps privilegiados. Para especificar o APK, use a android_app_import regra do Soong, conforme mostrado no exemplo a seguir:

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

O Android 12 e versões anteriores incluem código-fonte para apps desvinculados, mas você ainda pode especificar um APK pré-criado para incluir. Como o padrão do Soong é dar precedência ao código-fonte em relação a um pré-criado, é necessário definir a flag prefer como true na regra android_app_import, conforme mostrado no exemplo a seguir:

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
}

Detalhes do app desvinculado

App Desvinculado privilegiado
sistema assinado
Desvinculado privilegiado
não assinado pelo sistema
Desvinculado
não precisa estar na partição do sistema
Atualizar distribuição OTA OTA ou Google Play OTA ou Google Play
Host do AOSP X
Agenda X
CompanionDeviceSupport X
Central de controle (vários monitores) X
Telefone X
Mídia X
Mensagens (SMS) X
Bloqueio de apps sensíveis X