Las apps que incluyen el Marcador, Multimedia, la biblioteca de Car UI y SMS se consideran apps desglosadas (es decir, se desglosan de la plataforma de Android). Estas apps incluyen la lógica para recibir datos de la app complementaria para teléfonos y la UX en el automóvil, incluidos los parámetros de configuración para la asociación y el registro de funciones. Los APKs compilados a partir de código no agrupado funcionan con varias versiones de la plataforma.
Consulta el código
Para consultar el código no agrupado, ejecuta lo siguiente:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-masterrepo sync -cq -j4
Para obtener más información sobre cómo trabajar con el código fuente de AOSP, consulta Inicializa el cliente de Repo.
Cómo compilar el código
Puedes compilar el código con Android Studio o desde la línea de comandos.
Android Studio
Para compilar el código en Android Studio, haz lo siguiente:
En Android Studio, importa el siguiente archivo de compilación:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradleAsegúrate de que el JDK de Gradle esté configurado en la versión 11 o posterior:
Figura 1: Establece el JDK de Gradle en la versión 11 en Android Studio.
Línea de comandos
Para compilar el código desde la línea de comandos, haz lo siguiente:
Establece la ubicación del SDK de Android con uno de los siguientes métodos:
Crea
packages/apps/Car/libs/aaos-apps-gradle-project/local.propertiesy, luego, establece la propiedadsdk.dirque contiene. Android Studio puede hacerlo automáticamente cuando se abre un proyecto. Por ejemplo, usasdk.dir=/Users/MY-USERNAME/Library/Android/sdk.o
Establece la variable de entorno
ANDROID_SDK_ROOTcon la ruta de acceso al SDK de Android.
Abre un símbolo del sistema o una ventana de shell.
Ve a
packages/apps/Car/libs/aaos-apps-gradle-project.Ejecuta el siguiente comando:
./gradlew assemble
Niveles de API mínimos requeridos
Cada app no agrupada funciona en plataformas de Android con una versión igual o superior a su minSdkVersion. En la siguiente tabla, se indica la versión mínima de la API que admite cada app:
| App | Nivel mínimo de API |
|---|---|
| Calendario | 29 |
| Biblioteca de la IU del vehículo | 29 |
| CompanionDevice | 29 |
| Dialer | 31 |
| Contenido multimedia | 30 |
| Messenger (SMS) | 30 |
| Host de AOSP | 29 |
Cómo integrar una compilación previa en una imagen del sistema
Si la versión de la plataforma de Android es compatible con la app (consulta la tabla en la sección anterior), puedes agregar el APK a la imagen del sistema. Sin embargo, los pasos de integración difieren entre las versiones de la plataforma de Android.
Android 13 y versiones posteriores
Android 13 y versiones posteriores no incluyen código fuente para las apps no agrupadas, pero puedes incluir un APK compilado previamente en la compilación de la plataforma para casos de uso como las pruebas de cumplimiento de la CDD o el aprovisionamiento de apps con privilegios. Para especificar el APK, usa la regla android_app_import de Soong, como se muestra en el siguiente ejemplo:
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 y versiones anteriores
Android 12 y versiones anteriores incluyen el código fuente de las apps no agrupadas, pero aún puedes especificar un APK prediseñado para incluirlo. Dado que el valor predeterminado de Soong es dar prioridad al código fuente sobre un elemento compilado previamente, es necesario establecer la marca prefer en true dentro de la regla android_app_import, como se muestra en el siguiente ejemplo:
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
}
Detalles de la app no agrupada
| App | Privilegiado, no incluido en el paquete firmado por el sistema |
Privilegiado, no incluido en el paquete no firmado por el sistema |
Las apps no agrupadas no necesitan estar en la partición del sistema |
|---|---|---|---|
| Actualizar distribución | OTA | OTA o Google Play | OTA o Google Play |
| Host de AOSP | X | ||
| Calendario | X | ||
| CompanionDeviceSupport | X | ||
| Centro de control (pantallas múltiples) | X | ||
| Teléfono | X | ||
| Contenido multimedia | X | ||
| Messenger (SMS) | X | ||
| Bloqueo de apps sensible | X |