Crear una aplicación para el coche: Android For Cars

Desarrollo de apps en Android Automotive OS: configuración, interacción con el Host, UI con Car App Library, navegación y pruebas en emulador
Ilustración de Android for Cars con un automóvil conectado a una interfaz digital.

Índice

  1. Introducción
  2. Entorno
  3. ¿Qué es Android for Cars?
  4. Ejemplo de aplicación para Android Automotive OS
  5. Conclusiones
  6. Glosario
  7. 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:

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:

  1. Crear un nuevo proyecto y seleccionar la opción Automotive.
  2. Elegir No Activity como plantilla inicial para empezar desde cero.
Captura de pantalla de Android Studio mostrando la selección del tipo de proyecto Automotive.
Paso inicial para crear un proyecto de Android for Cars en Android Studio.

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).
Configuración de un nuevo proyecto en Android Studio con Kotlin y API 29.
Configuración recomendada para un proyecto de Android for Cars.

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:
  1. Abrir Android Studio y dirigirse a File > New > New Module.
  2. Seleccionar Android Library como tipo de módulo.
  3. Asignarle el nombre "myplaces".
Creación de un módulo de librería en Android Studio para separar la lógica del proyecto.
Separación de la lógica de negocio en un módulo independiente.

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.

Diagrama de arquitectura de aplicaciones en Android for Cars con el Host y Car App Library.
Diagrama de la interacción entre la aplicación, el Host y la Car App Library.

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:

  1. 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.
  2. 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.
  3. Generación de la plantilla de la interfaz:

    • La Screen devuelve 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.

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 Screen responde 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()
        }
    }
}

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é Screen debe 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 una Template con 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:

  1. El Host establece una conexión con la aplicación y solicita la creación de una Session.
  2. La Session inicializa una Screen, que representa la pantalla en la que se mostrará la interfaz de usuario.
  3. La Screen genera una Template, que define los elementos visuales permitidos en la interfaz del coche.
  4. 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.

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.
  • Actividad principal

    • CarAppActivity maneja la interfaz de usuario.
    • Se define con singleTask para evitar múltiples instancias.
    • Se indica que la actividad es la pantalla de inicio (intent-filter con MAIN y LAUNCHER).
  • Servicio de conexión con el Host

    • MyPlacesService actú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:

  1. Navegar a res > New > Android Resource File.
  2. Asignar el nombre automotive_app_desc.xml.
  3. Definir la siguiente configuración:
Ventana de Android Studio mostrando la creación de un nuevo archivo de recursos XML.
Definición de archivos XML necesarios para la configuración de la aplicació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:

  1. Abrir Android Studio y acceder a Tools > Device Manager.
  2. Hacer clic en Create Device.
  3. Seleccionar la opción Automotive y elegir un perfil de dispositivo compatible.
  4. Descargar e instalar una imagen del sistema basada en Android Automotive OS.
  5. Configurar las opciones de hardware y almacenamiento según sea necesario.
  6. 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:

Captura de pantalla de un emulador Android Automotive OS mostrando una aplicación en ejecución.
Verificación de la ejecución de la aplicación en Android Automotive OS.

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:

  1. Abrir Android Studio y acceder a View > Tool Windows > LogCat.
  2. Seleccionar el emulador en ejecución en la parte superior de la ventana.
  3. Filtrar por la etiqueta de la aplicación (tag:MyPlacesService) o buscar mensajes de error (E/).
  4. 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 -&gt;
            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) { _, _ -&gt; }
    }
}
  • 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 plantilla PlaceListMapTemplate, 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) { _, _ -&gt; }
    }
}
  • 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.

Pantalla de un emulador Android Automotive OS mostrando una solicitud de permisos de ubicación.
La aplicación solicita acceso a la ubicación del usuario para mostrar POIs cercanos.

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:

Aplicación Android Automotive mostrando una lista de POIs con distancias en el emulador.
Interfaz de usuario mostrando POIs 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:

Aplicación en ejecución en Android Automotive OS iniciando una ruta de navegación.
La aplicación abre la navegación tras seleccionar un POI.
  • 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

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad

Información básica acerca de la protección de datos

  • Responsable: IZERTIS S.A.
  • Finalidad: Envío información de carácter administrativa, técnica, organizativa y/o comercial sobre los productos y servicios sobre los que se nos consulta.
  • Legitimación: Consentimiento del interesado
  • Destinatarios: Otras empresas del Grupo IZERTIS. Encargados del tratamiento.
  • Derechos: Acceso, rectificación, supresión, cancelación, limitación y portabilidad de los datos.
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad

Consultor tecnológico de desarrollo de proyectos informáticos.  Ingeniero Técnico en Telecomunicaciones. Puedes encontrarme en Autentia by Izertis

¿Quieres publicar en Adictos al trabajo?

Te puede interesar

02/03/2026

José Antonio Sánchez Segovia

Zephyr es un RTOS open source respaldado por la Linux Foundation que permite desarrollar dispositivos embebidos conectados, eficientes y escalables, facilitando el paso de prototipo a producto final con una arquitectura mantenible.

23/02/2026

Enrique Casado Díez

LoRa y LoRaWAN son tecnologías clave en el ecosistema IoT cuando se requiere largo alcance y bajo consumo energético. En este artículo analizamos su funcionamiento, Spreading Factor, link budget, arquitectura de red, frecuencias y clases de dispositivos, con un caso práctico real.

19/02/2026

Juan José Díaz Antuña

Copilot Chat es la forma más sencilla y segura de empezar a usar IA en Microsoft 365. En este artículo vemos cómo funciona, cómo activarlo y en qué se diferencia de Microsoft 365 Copilot, Copilot Studio y los Agentes Inteligentes, con ejemplos prácticos y una comparativa clara.