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 del lado del 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 sin agrupar funcionan con varias versiones de la plataforma.
Consulta el código
Para consultar el código no agrupado, ejecuta el siguiente comando:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo 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.gradle
Asegú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.properties
y, luego, establece la propiedadsdk.dir
que 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_ROOT
con 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 app admite la versión de la plataforma de Android (consulta la tabla de 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 puedes especificar un APK compilado previamente para incluirlo. Dado que el valor predeterminado de Soong es dar prioridad al código fuente sobre un elemento precompilado, 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/Distribution | Sistema privilegiado no incluido en el paquete y firmado |
Privilegiado, no incluido en el paquete no del sistema firmado |
Las apps no agrupadas no necesitan estar en la partición del sistema |
---|---|---|---|
App: Calendario | X | ||
App: CompanionDeviceSupport | X | ||
App: Dialer | X | ||
App - AOSP Host | X | ||
App: Media | X | ||
App: Mensajes (SMS) | X | ||
Actualizar la distribución | OTA | OTA o Google Play | OTA o Google Play |