Guía de integración de la biblioteca de UI del automóvil

El kit de herramientas de interfaz de usuario (UI) para automóviles proporciona un marco de desarrollo de UI que puede utilizar para garantizar que las aplicaciones presentes en los automóviles (aplicaciones de Google y aplicaciones de sistemas y proveedores) puedan lograr lo siguiente:

  • Autoconsistencia UI/UX del infoentretenimiento. La autoconsistencia es la capacidad de un usuario de predecir cómo interactuar con un sistema de información y entretenimiento basándose en experiencias previas al interactuar con el mismo sistema.

  • Personalización. Los OEM pueden modificar la apariencia del sistema para integrar mejor la funcionalidad con el interior y el hardware del vehículo.

Para obtener más información sobre la integración de la biblioteca Car UI, consulte estas páginas:

Acerca de la biblioteca Car UI

La biblioteca Car UI es una biblioteca vinculada estáticamente que proporciona un conjunto de componentes y recursos que puede utilizar para implementar:

  • Aplicaciones de sistema y OEM (Gerrit)
  • Aplicaciones de Android Automotriz (AAOS)

Esta biblioteca sirve como:

  • API de personalización por:

    • Definir qué recursos se pueden personalizar, incluidos colores, dimensiones y elementos de diseño.
    • Tratar los recursos como una API con garantías de compatibilidad con versiones anteriores.
  • Capa de compatibilidad entre la solución a corto plazo prevista en Android 9 y Android 10 y la solución a largo plazo que se está desarrollando actualmente.

Superposiciones de recursos

Actualmente, Android ofrece varias formas de aplicar personalizaciones sin necesidad de trabajo adicional en los subsistemas y aplicaciones afectados:

  • Superposiciones en tiempo de construcción. Esta personalización se aplica en el momento de crear la imagen del sistema Android. Durante la compilación, todas las aplicaciones del sistema reciben recursos de su carpeta res y de carpetas overlay definidas en los archivos MAKE de destino.

  • Superposiciones de tiempo de ejecución dinámicas (RRO dinámico). Estos APK especiales contienen solo recursos y un archivo de manifiesto para indicar a qué APK de destino afectarán. Los RRO dinámicos se compilan e implementan independientemente de la imagen del sistema y se pueden activar y desactivar. Cuando el sistema realiza una búsqueda de recursos para una aplicación específica, también verifica si hay algún RRO dirigido a ella y si el RRO contiene un recurso con el mismo nombre.

  • Superposiciones de tiempo de ejecución estáticas (RRO estático). De estructura similar a los RRO dinámicos, siempre están activados , lo que significa que no se pueden desinstalar ni actualizar sin realizar una actualización completa de la imagen del sistema. Los RRO estáticos sirven como intermediarios entre el tiempo de compilación y las superposiciones de tiempo de ejecución dinámico.

Además de los componentes de la interfaz de usuario, la biblioteca Car UI proporciona un mecanismo para superponer directamente recursos (vinculados estáticamente en cada aplicación) con los recursos OEM, utilizando un conjunto de RRO estáticos . Los OEM deben proporcionar una carpeta que contenga sus superposiciones de recursos y una lista de aplicaciones específicas. Durante una compilación, la infraestructura de la biblioteca Car UI usaría esta información para generar un RRO estático para cada aplicación de destino.

Componentes de la biblioteca de UI del automóvil

Figura 1 . Componentes de la biblioteca de UI del automóvil

En la imagen de arriba:

  • Verde . Personalización proporcionada por el OEM, una combinación de recursos de superposición en tiempo de construcción y tiempo de ejecución.

  • Amarillo. Soporte proporcionado por la biblioteca Car UI, incluidos recursos superpuestos , componentes (código Java) y soporte de compilación para generar los RRO necesarios.

  • Azul. Objetivos personalizables que incluyen el marco, aplicaciones del sistema, aplicaciones de proveedores y aplicaciones de GAS que utilizan la biblioteca Car UI para personalizar los elementos de la UI.