Las apps que incluyen el selector, el contenido multimedia, la biblioteca de la IU de Car y los SMS se consideran apps sin paquetes (es decir, no están empaquetadas en la plataforma de Android). Estas apps incluyen la lógica para recibir datos de la app complementaria del teléfono y la UX en el automóvil, incluida la configuración para la asociación y la inscripción de funciones. Los APK compilados a partir de código no empaquetado funcionan con varias versiones de la plataforma.
Consulta el código
Para revisar el código sin agrupar, ejecuta lo siguiente:
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 Cómo inicializar 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 una posterior:
Figura 1: Establece Gradle JDK 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
Configura 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 sin empaquetar funciona en plataformas de Android con una versión igual o superior a su minSdkVersion
. En la siguiente tabla, se muestra la versión mínima de 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 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 apps sin agrupar, pero puedes incluir un APK compilado previamente en la compilación de la plataforma para casos de uso como pruebas de cumplimiento de CDD o 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 código fuente para apps sin empaquetar, pero puedes especificar un APK compilado previamente para incluirlo. Como la configuración predeterminada de Soong es dar prioridad al código fuente sobre una compilación previa, 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 sin agrupar
App/Distribución | Firma del sistema exento de privilegios |
Sin paquetes con privilegios no firmados por el sistema |
Los paquetes sin agrupar no es necesario que estén en la partición del sistema. |
---|---|---|---|
App: Calendario | X | ||
App: CompanionDeviceSupport | X | ||
App: Dialer | X | ||
App: Host de AOSP | X | ||
App: Media | X | ||
App: Mensajero (SMS) | X | ||
Actualiza la distribución | OTA | OTA o Google Play | OTA o Google Play |