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-masterrepo 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:
No Android Studio, importe o seguinte arquivo de build:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradleVerifique se o Gradle JDK está definido como a versão 11 ou mais recente:
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:
Defina o local do SDK do Android usando um dos seguintes métodos:
Crie
packages/apps/Car/libs/aaos-apps-gradle-project/local.propertiese defina a propriedadesdk.dirque ele contém. O Android Studio pode fazer isso automaticamente ao abrir um projeto. Por exemplo, usesdk.dir=/Users/MY-USERNAME/Library/Android/sdk.ou
Defina a variável de ambiente
ANDROID_SDK_ROOTcom o caminho para o SDK do Android.
Abra um prompt de comando ou uma janela do shell.
Acesse
packages/apps/Car/libs/aaos-apps-gradle-project.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 |