Integrar apps não agrupados

Os apps que incluem discador, mídia, biblioteca de interface para carros e SMS são considerados apps não agrupados, ou seja, eles não são agrupados da plataforma Android. Esses apps incluem a lógica para receber dados do app complementar do smartphone e a UX no carro, incluindo configurações de associação e registro de recursos. Os APKs criados com o código não agrupado funcionam com várias versões da plataforma.

Conferir o código

Para conferir o código desempacotado, 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 repositório.

Criar o código

É possível criar o código usando o Android Studio ou a 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 JDK do Gradle está definido como a versão 11 ou mais recente:

    Versão 11

    Figura 1. Defina o JDK do Gradle 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 destes 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 não agrupado 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 interface do carro 29
CompanionDevice 29
Telefone 31
Mídia 30
Messenger (SMS) 30
AOSP Host 29

Integrar um pré-build a uma imagem do sistema

Se a versão da plataforma Android tiver suporte do app (consulte a tabela na seção anterior), você poderá adicionar o APK à imagem do sistema. No entanto, as etapas de integração são diferentes 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 o código-fonte de apps não agrupados, mas você pode incluir um APK pré-criado no build da plataforma para casos de uso, como testes de conformidade do CDD ou provisionamento de apps privilegiados. Para especificar o APK, use a regra android_app_import 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 o código-fonte para apps não agrupados, 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 vez de um pré-criado, é necessário definir a flag prefer como true dentro da regra android_app_import, conforme mostrado no exemplo abaixo:

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 não agrupado

App/distribuição
Assinatura do sistema privilegiada do sistema sem pacotes

Assinatura do sistema não agrupada
privilegiada
Os pacotes não agrupados
não precisam estar na partição do sistema
App: Agenda X
App: CompanionDeviceSupport X
App: Discador X
App: host do AOSP X
App: Mídia X
App: Messenger (SMS) X
Atualizar distribuição OTA OTA ou Google Play OTA ou Google Play