Índice
- Introducción
- Entorno
- ¿Qué es Android for Cars?
- Ejemplo de aplicación para Android Automotive OS
- 4.1. Categorías de aplicaciones en Android for Cars
- 4.2. Configuración del entorno de desarrollo
- 4.3. Arquitectura de ejecución en Android for Cars
- 4.4. Implementación del servicio y la sesión
- 4.5. Configuración del manifiesto de la aplicación
- 4.6. Ejecución y pruebas en el emulador
- 4.6.1. Configuración del emulador
- 4.6.2. Depuración con LogCat
- 4.7. Incorporación de lógica para mostrar lugares favoritos
- Conclusiones
- Glosario
- Referencias Bibliográficas
1. Introducción
La industria automotriz está en plena transformación gracias a la conectividad y la automatización. Los vehículos modernos han pasado de ser simples medios de transporte a convertirse en plataformas digitales avanzadas, ofreciendo experiencias personalizadas, mayor seguridad vial y mejorando la movilidad.
Las aplicaciones para vehículos conectados y autónomos desempeñan un papel clave en esta transformación. Desde la navegación inteligente hasta la asistencia al conductor y el entretenimiento a bordo, el ecosistema digital dentro del automóvil es cada vez más relevante. En este contexto, Android for Cars y su Car App Library proporcionan herramientas para crear aplicaciones optimizadas para este entorno, garantizando una integración segura y eficiente con los sistemas del vehículo.
A lo largo de este artículo, exploraremos cómo desarrollar aplicaciones para automóviles utilizando Android Auto y Automotive OS, centrándonos en el uso de la Car App Library para lograr una implementación segura y adaptada a las necesidades del conductor.
2. Entorno
En este tutorial, se ha utilizado el siguiente entorno de desarrollo:
- Hardware:
- MacBook Pro 16″ (Apple M1 Max, 64GB RAM, 2TB SSD).
- Software:
- Android Studio: Ladybug Feature Drop (2024.2.2 Patch 1).
- Sistema Operativo: macOS Sequoia 15.2.
3. ¿Qué es Android for Cars?
El desarrollo de aplicaciones para vehículos en el ecosistema de Android for Cars permite crear experiencias optimizadas para automóviles mediante herramientas oficiales de Google. Antes de entrar en detalle, puedes consultar el código fuente del ejemplo que usaremos en este artículo en el repositorio de GitHub del proyecto.
Para comenzar, es recomendable revisar la documentación oficial de Google sobre el diseño de aplicaciones para automóviles y su implementación en Android for Cars.
Sin embargo, el desarrollo de software para vehículos no se limita a la interfaz de usuario. También existe un nivel más profundo, relacionado con la integración de software con el hardware del automóvil. En este contexto, el sitio oficial del Android Open Source Project (AOSP) para automóviles es un recurso clave para fabricantes (OEMs), desarrolladores de sistemas embebidos y empresas especializadas en In-Vehicle Infotainment (IVI).
En él, encontrarás información sobre la arquitectura de software y terminología, requisitos y restricciones de diseño, así como herramientas para el desarrollo y pruebas.
No obstante, en este artículo nos enfocaremos en el desarrollo de aplicaciones dentro del entorno Android for Cars y no en la integración con hardware.
3.1 Tipos de aplicaciones en Android for Cars
Existen dos enfoques principales para desarrollar aplicaciones en este ecosistema:
- Aplicaciones proyectadas: Funcionan en el teléfono y utilizan la pantalla del automóvil como una extensión, sin acceso a los controles del vehículo. Esto es Android Auto.
- Aplicaciones embebidas: Se ejecutan directamente en el sistema del vehículo a través de Android Automotive OS. Son autónomas y pueden conectarse a internet mediante una SIM integrada o WiFi. Estas aplicaciones pueden interactuar con el sistema del coche a través de la Vehicle Hardware Abstraction Layer (VHAL), si el fabricante lo permite. Dependiendo de la configuración del fabricante, pueden ser preinstaladas o descargadas desde Google Play Store for Automotive.
A pesar de sus diferencias, ambas se desarrollan de forma similar a cualquier aplicación Android, utilizando Java o Kotlin, Gradle y Android Studio.
Las pruebas, sin embargo, varían según el tipo de aplicación:
- Aplicaciones proyectadas: Requieren un dispositivo Android y el uso del Desktop Head Unit (DHU).
- Aplicaciones embebidas: Se prueban utilizando el Android Virtual Device (AVD).
3.2 Interacción con el vehículo
Para la integración con el sistema del automóvil, Android for Cars ofrece dos herramientas clave:
- Car App Library: Permite desarrollar interfaces optimizadas para vehículos.
- API CarPropertyManager: Facilita la interacción con la VHAL, permitiendo recibir eventos y enviar comandos al vehículo.
3.3 Observaciones
A continuación, destacamos algunos aspectos importantes a tener en cuenta al desarrollar aplicaciones para Android for Cars.
Si ya tienes experiencia desarrollando aplicaciones en Android, adaptar tu conocimiento será un proceso relativamente sencillo.
El mayor reto radica en comprender las restricciones de diseño, las normas de seguridad y el uso de las librerías específicas para la interacción con el sistema del vehículo.
Para profundizar en estos temas, puedes consultar la documentación oficial de Google en la sección de formación sobre Android for Cars.
4. Ejemplo de aplicación para Android Automotive OS
En esta sección, desarrollaremos una aplicación práctica para Android Automotive OS, siguiendo un enfoque estructurado y progresivo. Aprenderemos a configurar el entorno de desarrollo, definir la arquitectura de la aplicación y escribir el código necesario para mostrar puntos de interés (POI) en un mapa, permitiendo calcular la distancia desde la ubicación del usuario e iniciar una navegación.
Dividiremos el desarrollo en varias etapas:
- Selección y configuración del proyecto en Android Studio.
- Definición de la arquitectura de ejecución, con el uso del Host y la Car App Library.
- Implementación de la lógica de la aplicación, incluyendo la sesión, la pantalla principal y la gestión de permisos.
- Configuración del manifiesto y pruebas en el emulador, asegurando el correcto funcionamiento de la aplicación.
Cada subsección nos acercará un paso más a una aplicación completamente funcional en Android Automotive OS. ¡Comencemos!
4.1. Categorías de aplicaciones en Android for Cars
Antes de comenzar, es fundamental conocer los tipos de aplicaciones que se pueden desarrollar en Android for Cars. Estas aplicaciones se dividen en diferentes categorías según su función y el tipo de ejecución:
- Aplicaciones proyectadas: Funcionan en un teléfono móvil y se muestran en la pantalla del vehículo mediante Android Auto. No tienen acceso directo a los sistemas del coche y dependen del smartphone para ejecutarse.
- Aplicaciones embebidas:: Se ejecutan directamente en el sistema del vehículo a través de Android Automotive OS. Pueden conectarse a Internet de forma autónoma y, si el fabricante lo permite, interactuar con los controles del vehículo mediante la Vehicle Hardware Abstraction Layer (VHAL).
A diferencia de las aplicaciones móviles convencionales, las aplicaciones para automóviles no tienen control total sobre la interfaz de usuario. En su lugar, deben utilizar plantillas predefinidas optimizadas para garantizar la seguridad durante la conducción.
En este ejemplo, desarrollaremos una aplicación embebida perteneciente a la categoría Puntos de Interés (POI). Este tipo de aplicación permite mostrar ubicaciones relevantes en el mapa, calcular distancias desde la ubicación actual del usuario y facilitar la navegación hasta un destino seleccionado.
4.2. Configuración del entorno de desarrollo
Antes de comenzar con el desarrollo, es necesario configurar correctamente el entorno de trabajo. A continuación, se detallan los pasos para crear el proyecto en Android Studio y organizar su estructura de módulos.
4.2.1. Creación del proyecto en Android Studio
Para desarrollar nuestra aplicación en Android Automotive OS, primero necesitamos descargar e instalar Android Studio, si aún no lo tenemos.
Luego, seguimos estos pasos:
- Crear un nuevo proyecto y seleccionar la opción Automotive.
- Elegir No Activity como plantilla inicial para empezar desde cero.

Una vez seleccionado el tipo de proyecto, configuramos los siguientes parámetros:
- Lenguaje de programación: Kotlin
- Versión mínima de API: 29 (todos los vehículos compatibles con Car App Library requieren al menos esta versión).

Cuando la configuración está completa y la compilación finaliza, Android Studio generará un módulo principal llamado "automotive".
4.2.2. Creación del módulo myplaces
Para mejorar la organización del código y separar la lógica de negocio de la interfaz de usuario, crearemos un módulo de librería independiente.
Pasos para crear el módulo:
- Abrir Android Studio y dirigirse a File > New > New Module.
- Seleccionar Android Library como tipo de módulo.
- Asignarle el nombre "myplaces".

Una vez creado el módulo, agregamos las siguientes dependencias en el archivo build.gradle del módulo "automotive":
|
Kotlin
|
|
|---|---|
|
dependencies {
implementation(libs.androidx.app.automotive) implementation(project(":myplaces")) } |
|
Esto permitirá que el módulo "automotive" acceda a las clases necesarias para una aplicación de Android Automotive OS y al módulo "myplaces", donde almacenaremos la lógica central de la aplicación.
4.3. Arquitectura de ejecución en Android for Cars
Las aplicaciones en Android Automotive OS y Android Auto no interactúan directamente con el hardware del vehículo. En su lugar, lo hacen a través del Host, que actúa como intermediario entre la aplicación y el sistema del coche.
El Host utiliza la Car App Library para gestionar la interfaz de usuario y las interacciones con el vehículo de manera segura y optimizada para la conducción.

4.3.1. Interacción con el Host
El Host es un componente fundamental en Android for Cars, ya que actúa como intermediario entre la aplicación del usuario y el sistema del vehículo. A diferencia de una aplicación convencional de Android, las aplicaciones en Android Automotive OS y Android Auto no interactúan directamente con el hardware o la interfaz del automóvil.
En su lugar, el Host se encarga de:
- Gestionar la interfaz de usuario, renderizando la UI con plantillas predefinidas de la Car App Library.
- Aplicar restricciones de seguridad, asegurando que la aplicación no genere distracciones mientras el vehículo está en movimiento.
- Regular el acceso a funciones del coche, como la ubicación y la navegación, según las políticas del fabricante.
Funcionamiento del Host en la ejecución de la aplicación
Cuando una aplicación de Android Automotive OS se ejecuta, el flujo de interacción con el Host sigue estos pasos:
-
Inicialización del servicio:
- La aplicación inicia su ejecución a través del CarAppService, que actúa como un punto de entrada.
- El Host detecta la aplicación y solicita la creación de una nueva sesión.
-
Creación de la sesión y la pantalla principal:
- El servicio responde creando una instancia de
Session. - La sesión genera una
Screen, que representa la pantalla actual de la aplicación.
- El servicio responde creando una instancia de
-
Generación de la plantilla de la interfaz:
- La
Screendevuelve una plantilla predefinida (Template) de la Car App Library, que contiene la interfaz de usuario optimizada para automóviles. - El Host recibe esta plantilla y la renderiza en la pantalla del vehículo.
- La
4️. Interacción del usuario y eventos:
- Cuando el usuario interactúa con la aplicación (por ejemplo, seleccionando un POI), el Host envía los eventos a la
Screen. - La
Screenresponde con una actualización de la interfaz o ejecutando una acción, como iniciar la navegación.
Ejemplo de interacción con el Host
El siguiente fragmento de código muestra cómo el Host se comunica con la aplicación a través de CarAppService, gestionando la sesión y la pantalla principal:
|
Kotlin
|
|
|---|---|
|
class MyPlacesService : CarAppService() {
override fun onCreateSession() = MyPlacesSession() override fun createHostValidator(): HostValidator { return if ((applicationInfo.flags and ApplicationInfo.FLAG_DEBUGGABLE) != 0) { HostValidator.ALLOW_ALL_HOSTS_VALIDATOR } else { HostValidator.Builder(this) .addAllowedHosts(R.array.hosts_allowlist_sample) .build() } } } |
|
onCreateSession(): Se ejecuta cuando el Host inicia la aplicación, creando una nueva sesión.createHostValidator(): Controla qué Hosts pueden ejecutar la aplicación.
En la sesión, se define qué pantalla debe mostrarse al usuario:
|
Kotlin
|
|
|---|---|
|
class MyPlacesSession : Session() {
override fun onCreateScreen(intent: Intent): Screen { return MainScreen(carContext) } } |
|
onCreateScreen(): Indica quéScreendebe manejar la interfaz cuando la aplicación es iniciada.
Finalmente, la MainScreen genera la plantilla que el Host renderizará en la pantalla del vehículo:
|
Kotlin
|
|
|---|---|
|
class MainScreen(carContext: CarContext) : Screen(carContext) {
override fun onGetTemplate(): Template { return PlaceListMapTemplate.Builder() .setTitle("My favourite places in the world") .build() } } |
|
onGetTemplate(): Devuelve unaTemplatecon la interfaz de usuario que será mostrada en el coche.
Consideraciones sobre la interacción con el Host
- Las aplicaciones en Android for Cars no tienen acceso directo al hardware del vehículo. Toda la interacción se realiza a través del Host, lo que garantiza seguridad y compatibilidad.
- La interfaz está restringida a plantillas predefinidas. No es posible personalizar completamente la UI, ya que el Host controla la renderización para evitar distracciones al conductor.
- El acceso a funciones del coche depende del fabricante. En Android Auto, las aplicaciones no pueden interactuar con el sistema del vehículo, mientras que en Android Automotive OS, algunas aplicaciones pueden acceder a la VHAL (Vehicle Hardware Abstraction Layer) si el fabricante lo permite.
4.3.2 Flujo de ejecución de una aplicación en Android for Cars
Cuando la aplicación se ejecuta, el proceso sigue estos pasos:
- El Host establece una conexión con la aplicación y solicita la creación de una Session.
- La Session inicializa una Screen, que representa la pantalla en la que se mostrará la interfaz de usuario.
- La Screen genera una Template, que define los elementos visuales permitidos en la interfaz del coche.
- El Host renderiza la Template en la pantalla del vehículo, asegurando que la interfaz cumpla con los estándares de seguridad de Android for Cars.
Este flujo permite que la aplicación se ejecute de manera segura, sin que el desarrollador tenga acceso directo a elementos sensibles del sistema del automóvil.
4.4. Implementación del servicio y la sesión
Para que una aplicación de Android Automotive OS funcione correctamente, es necesario implementar un servicio que gestione su ciclo de vida y una sesión que defina la pantalla principal.
4.4.1. Creación del servicio de la aplicación
El servicio es el punto de entrada de la aplicación en Android for Cars. Actúa como intermediario entre la aplicación y el Host, que controla cómo se renderiza la interfaz en la pantalla del vehículo.
Definimos MyPlacesService, que extiende CarAppService y maneja la conexión con el Host:
|
Kotlin
|
|
|---|---|
|
class MyPlacesService : CarAppService() {
override fun onCreateSession() = MyPlacesSession() override fun createHostValidator(): HostValidator { return if ((applicationInfo.flags and ApplicationInfo.FLAG_DEBUGGABLE) != 0) { HostValidator.ALLOW_ALL_HOSTS_VALIDATOR } else { HostValidator.Builder(this) .addAllowedHosts(R.array.hosts_allowlist_sample) .build() } } } |
|
-
onCreateSession(): Se ejecuta cuando el Host inicia la aplicación y crea una nueva sesión.-
createHostValidator(): Controla qué Hosts pueden conectarse a la aplicación. -
Si la aplicación está en modo depuración, acepta todas las conexiones.
-
En modo producción, solo permite los Hosts incluidos en una lista de confianza (
hosts_allowlist_sample).
-
El HostValidator es una medida de seguridad que evita que la aplicación se ejecute en dispositivos no autorizados.
4.4.2. Definición de la sesión y la pantalla principal
Una vez que la aplicación está en ejecución, el Host solicita la creación de una sesión, que controla la interfaz de usuario.
|
Kotlin
|
|
|---|---|
|
class MyPlacesSession : Session() {
override fun onCreateScreen(intent: Intent): Screen { return MainScreen(carContext) } } |
|
onCreateScreen(): Se ejecuta cuando el Host necesita renderizar la pantalla de la aplicación.- Devuelve una instancia de
MainScreen, que representa la interfaz principal.
- Devuelve una instancia de
4.4.3. Creación de la pantalla principal
La MainScreen define cómo se verá la aplicación en la pantalla del vehículo. En este caso, usaremos un PlaceListMapTemplate, que muestra una lista de ubicaciones en un mapa.
|
Kotlin
|
|
|---|---|
|
class MainScreen(carContext: CarContext) : Screen(carContext) {
override fun onGetTemplate(): Template { return PlaceListMapTemplate.Builder() .setTitle("My favourite places in the world") .build() } } |
|
onGetTemplate(): Define el diseño de la pantalla que se mostrará en el vehículo.PlaceListMapTemplate: Es una plantilla predefinida que muestra un mapa con ubicaciones de interés.
4.5. Configuración del manifiesto de la aplicación
Para que la aplicación funcione correctamente en Android Automotive OS, es necesario configurar el archivo AndroidManifest.xml. Este archivo define los permisos, la actividad principal y el servicio que interactúa con el Host.
A continuación, se muestra la configuración del manifiesto para nuestra aplicación:
|
XML
|
|
|---|---|
|
<!-- Permiso para usar plantillas de mapas -->
<!-- Nivel mínimo de API para compatibilidad con Android Automotive OS --> <!-- Definición de la actividad principal --> <!-- Servicio que interactúa con el Host --> |
|
Principales configuraciones en el manifiesto:
- Permisos
- Se declara el permiso
MAP_TEMPLATES, necesario para mostrar mapas en la aplicación.
- Se declara el permiso
-
Actividad principal
CarAppActivitymaneja la interfaz de usuario.- Se define con
singleTaskpara evitar múltiples instancias. - Se indica que la actividad es la pantalla de inicio (
intent-filterconMAINyLAUNCHER).
-
Servicio de conexión con el Host
MyPlacesServiceactúa como intermediario entre la aplicación y el Host.- Se declara la acción
CarAppService, que indica que este servicio es una aplicación compatible con Android Automotive OS. - Se asigna la categoría POI, lo que permite que la aplicación gestione puntos de interés.
Antes de poder ejecutar la aplicación, es necesario declarar que usaremos las plantillas de la Car App Library. Para ello, debemos crear un archivo de recursos XML dentro del módulo "automotive".
4.5.1. Definición del archivo de recursos XML
Además del manifiesto, es necesario declarar que nuestra aplicación usará las plantillas de la Car App Library. Para ello, creamos un archivo XML de recursos dentro del módulo "automotive".
Pasos en Android Studio:
- Navegar a res > New > Android Resource File.
- Asignar el nombre automotive_app_desc.xml.
- Definir la siguiente configuración:

El archivo automotive_app_desc.xml debe contener lo siguiente:
|
XML
|
|
|---|---|
|
|
|
4.6. Ejecución y pruebas en el emulador
Antes de ejecutar la aplicación, es necesario configurar un dispositivo virtual Automotive en el AVD Manager.
4.6.1. Configuración del emulador
Pasos para crear un emulador de Android Automotive OS en AVD Manager:
- Abrir Android Studio y acceder a Tools > Device Manager.
- Hacer clic en Create Device.
- Seleccionar la opción Automotive y elegir un perfil de dispositivo compatible.
- Descargar e instalar una imagen del sistema basada en Android Automotive OS.
- Configurar las opciones de hardware y almacenamiento según sea necesario.
- Guardar la configuración y ejecutar el emulador.
Si todo está configurado correctamente, al ejecutar la aplicación, deberíamos ver la siguiente interfaz en el emulador:

4.6.2. Depuración con LogCat
Si la aplicación no se ejecuta correctamente, podemos depurarla utilizando LogCat, una herramienta integrada en Android Studio que permite analizar registros del sistema y errores.
Pasos para utilizar LogCat:
- Abrir Android Studio y acceder a View > Tool Windows > LogCat.
- Seleccionar el emulador en ejecución en la parte superior de la ventana.
- Filtrar por la etiqueta de la aplicación (
tag:MyPlacesService) o buscar mensajes de error (E/). - Revisar los logs y ajustar el código según sea necesario.
4.7. Incorporación de lógica para mostrar lugares favoritos
En esta sección, mejoraremos la aplicación añadiendo:
- Ubicaciones favoritas, permitiendo visualizar puntos de interés (POIs) en el mapa.
- Cálculo de distancias, mostrando cuán lejos está cada ubicación del usuario.
- Integración con el sistema de navegación del vehículo, para iniciar una ruta hacia un destino seleccionado.
4.7.1. Implementación de la lógica de ubicaciones y distancias
El siguiente fragmento de código define cómo se obtienen y muestran los POIs en la interfaz:
|
Kotlin
|
|
|---|---|
|
class MainScreen(carContext: CarContext) : Screen(carContext) {
private val placePort by lazy { PortFactory.instance.createPlacePort() } private var currentLocation: Location? = null override fun onGetTemplate(): Template { val itemListBuilder = ItemList.Builder() placePort.getPlaces().forEach { place -> val distanceInKilometers = calculateDistanceFromCurrentLocation(place) itemListBuilder.addItem( createRow(place, distanceInKilometers) ) } return PlaceListMapTemplate.Builder() .setItemList(itemListBuilder.build()) .setTitle("My favourite places in the world") .build() } } |
|
Tras explicar el siguiente fragmento de código:
|
Kotlin
|
|
|---|---|
|
private fun requestPermissions() {
val permissions = carContext.packageManager.getPackageInfo( carContext.packageName, PackageManager.GET_PERMISSIONS ).requestedPermissions?.filterNot { it.startsWith("androidx.car.app") || hasPermission(it) } ?: emptyList() if (permissions.isNotEmpty()) { carContext.requestPermissions(permissions) { _, _ -> } } } |
|
placePort.getPlaces(): Obtiene una lista de ubicaciones almacenadas en la aplicación.calculateDistanceFromCurrentLocation(place): Calcula la distancia entre el usuario y cada POI.onGetTemplate(): Genera la plantillaPlaceListMapTemplate, que muestra los POIs en el mapa.
4.7.2. Solicitud de permisos de ubicación
Para calcular distancias, la aplicación necesita acceso a la ubicación del usuario. Esto se maneja con el siguiente código:
|
Kotlin
|
|
|---|---|
|
private fun requestPermissions() {
val permissions = carContext.packageManager.getPackageInfo( carContext.packageName, PackageManager.GET_PERMISSIONS ).requestedPermissions?.filterNot { it.startsWith("androidx.car.app") || hasPermission(it) } ?: emptyList() if (permissions.isNotEmpty()) { carContext.requestPermissions(permissions) { _, _ -> } } } |
|
requestPermissions(): Verifica si la aplicación tiene permisos de ubicación y, si no los tiene, los solicita al usuario.
Al ejecutar la aplicación por primera vez, se solicitarán permisos de ubicación para poder mostrar la distancia a los puntos de interés y permitir la navegación.

4.7.3. Visualización de POIs con distancias
Una vez concedidos los permisos, la aplicación mostrará una lista de puntos de interés con sus respectivas distancias:

🔹 Los POIs aparecen organizados con el nombre del lugar y la distancia desde la ubicación actual del usuario.
4.7.4. Integración con el sistema de navegación
Si el usuario selecciona un POI, la aplicación abrirá el sistema de navegación integrado para iniciar una ruta hasta el destino:

- La aplicación genera una intención (
Intent) que abre el sistema de navegación del vehículo con el destino seleccionado.
5. Conclusiones
A lo largo de este artículo, hemos recorrido los pasos fundamentales para construir una aplicación en Android Automotive OS, desde la configuración del entorno hasta la integración con el sistema de navegación del vehículo.
Hemos aprendido a trabajar con la Car App Library, gestionar elementos clave como la sesión, la pantalla y las plantillas predefinidas, así como a implementar el acceso a la ubicación del usuario para calcular distancias a puntos de interés. También vimos cómo configurar el manifiesto de la aplicación, definir permisos y realizar pruebas en el emulador Automotive.
Pero esto es solo el principio. A partir de aquí, podrías llevar la app al siguiente nivel agregando nuevas funcionalidades, como:
- Bases de datos para almacenar ubicaciones favoritas.
- Comandos de voz, mejorando la interacción sin necesidad de tocar la pantalla.
- Integración con modelos de IA (como un LLM) para ofrecer recomendaciones inteligentes.
El ecosistema de Android for Cars sigue evolucionando, y estar al tanto de las actualizaciones de la Car App Library será clave para desarrollar aplicaciones cada vez más avanzadas y optimizadas para la experiencia en vehículos.
¡Ahora es tu turno! Experimenta, prueba y sigue explorando las posibilidades de Android Automotive OS.
Stay tuned!
6. Glosario
- Android Automotive OS
- Sistema operativo basado en Android diseñado específicamente para ejecutarse directamente en el hardware de los vehículos, sin necesidad de un smartphone.
- Android Auto
- Plataforma de Android que permite proyectar la pantalla del teléfono en el sistema de infoentretenimiento del coche, utilizando una interfaz optimizada para la conducción.
- AVD (Android Virtual Device)
- Emulador de Android que permite probar aplicaciones en un entorno simulado sin necesidad de un dispositivo físico.
- Car App Library
- Conjunto de herramientas y componentes proporcionados por Google para desarrollar aplicaciones compatibles con Android Auto y Android Automotive OS.
- Car App Service
- Clase base en Android Automotive OS utilizada para gestionar la comunicación entre la aplicación y el sistema del vehículo a través del Host.
- CarContext
- Clase en Android Automotive OS que proporciona acceso a servicios y recursos específicos del entorno de ejecución de la aplicación en el vehículo.
- Host
- Componente intermediario en Android for Cars que controla la ejecución de aplicaciones, asegurando que cumplan con las restricciones de seguridad y experiencia de usuario.
- Intent
- Mecanismo en Android para enviar mensajes entre componentes, como actividades o servicios, permitiendo iniciar una nueva pantalla o realizar una acción específica.
- LogCat
- Herramienta de Android Studio que permite visualizar registros del sistema y depurar aplicaciones mediante logs.
- Manifest (AndroidManifest.xml)
- Archivo de configuración que define los permisos, actividades, servicios y metadatos necesarios para la ejecución de una aplicación en Android.
- PlaceListMapTemplate
- Plantilla predefinida de la Car App Library utilizada para mostrar una lista de ubicaciones con su representación en un mapa dentro del sistema de infoentretenimiento del vehículo.
- POI (Point of Interest)
- Lugares de interés en una aplicación de mapas, como restaurantes, gasolineras o estaciones de carga de vehículos eléctricos.
- Screen
- Clase en Android Automotive OS que representa una pantalla dentro de la aplicación y define su interfaz de usuario utilizando plantillas.
- Session
- Objeto en Android Automotive OS que gestiona el ciclo de vida de la aplicación y coordina la interacción con el Host.
- Vehicle Hardware Abstraction Layer (VHAL)
- Capa de abstracción en Android Automotive OS que permite a las aplicaciones acceder a información y controles del hardware del vehículo, como velocidad o nivel de combustible, si el fabricante lo permite.
7. Referencias bibliográficas
Referencias Bibliográficas
- Android Developers. Android for Cars. Google. Disponible en:
https://developer.android.com/cars
- Android Developers. Car App Library Overview. Google. Disponible en:
https://developer.android.com/training/cars/apps
- Android Developers. Testing Android for Cars Applications. Google. Disponible en:
https://developer.android.com/training/cars/testing
- Android Open Source Project. Automotive Overview. Google. Disponible en:
https://source.android.com/docs/automotive
- Android Open Source Project. Vehicle Hardware Abstraction Layer (VHAL). Google. Disponible en:
https://source.android.com/docs/automotive/vhal
- Android Developers. Android Virtual Device (AVD) for Automotive. Google. Disponible en:
https://developer.android.com/training/cars/testing/emulator
- Android Developers. LogCat – Debugging and Logging. Google. Disponible en:
https://developer.android.com/studio/debug/logcat
- Android Developers. Creating Automotive Apps. Google. Disponible en:
https://developer.android.com/training/cars/start