Descripción general de la HMI

Android Automotive es una solución de plataforma de información y entretenimiento para el automóvil proporcionada con el Proyecto de código abierto de Android (AOSP). Los artículos de este tema presentan los conceptos y componentes clave proporcionados por la interfaz de usuario del sistema automotriz Android y las aplicaciones principales necesarias para crear un sistema de interfaz hombre-máquina (HMI) eficaz para fabricantes de equipos originales, desarrolladores externos y usuarios finales.

  • Guía de integración de host AOSP . App Host permite que las aplicaciones para automóviles 3P representen componentes de interfaz de usuario (UI) de estilo OEM en su nombre.
  • Estructura de configuración del vehículo . Car Settings proporciona una interfaz de usuario visual centrada en el automóvil, optimizaciones básicas de distracción del conductor y puntos de entrada de personalización adicionales para los OEM.
  • Guía de integración de la biblioteca de UI del automóvil . La biblioteca Car UI proporciona un marco de desarrollo de UI para permitir que todas las aplicaciones presentes en el automóvil logren coherencia y personalización.
  • Personalice los iconos del sistema de la barra de estado . La barra de estado es un componente de la interfaz de usuario del sistema Android que se utiliza para mostrar de forma persistente información importante a los usuarios. Aprenda a personalizar los íconos del sistema de la barra de estado.
  • Notificaciones de aviso . Aprenda a personalizar las notificaciones emergentes.
  • Marcador . Utilice esta aplicación del sistema Android para implementar una experiencia optimizada para distracciones (DO) para llamadas Bluetooth, búsqueda de contactos y administración de llamadas.
  • Medios . Con sólo unas pocas configuraciones y un servicio, los desarrolladores pueden ampliar las aplicaciones multimedia existentes. Si bien las aplicaciones deben cumplir con la plantilla de Automotive Media, los desarrolladores pueden personalizar los colores, las fuentes, los íconos y más de la plantilla para crear una experiencia de marca.
  • Notificaciones . Aprenda cómo cambiar la apariencia y las configuraciones de las notificaciones.

Terminología

Estos términos se utilizan en HMI y artículos relacionados:

Término Definición
Aplicaciones principales El conjunto clave de aplicaciones fundamentales para la funcionalidad del sistema, incluidas Configuración, Radio, HVAC, Medios, Marcador y Teclado.
Documento de definición de compatibilidad (CDD) Enumera los requisitos que se deben cumplir para que los dispositivos sean compatibles con la última versión de Android.
Conjunto de pruebas de compatibilidad (CTS) Paquete de pruebas gratuito de calidad comercial, disponible para descargar en Descargas del paquete de pruebas de compatibilidad .
Personalización El ejercicio de modificar una implementación de AOSP para cumplir con los requisitos de un OEM. Por lo general, esto implica el uso de superposiciones de recursos para aplicar cambios cosméticos y al mismo tiempo garantizar el cumplimiento de CDD, CTS y todas las pautas relevantes de experiencia del usuario.
Aplicaciones heroicas Un conjunto de aplicaciones clave fundamentales para todos los aspectos de Android, incluida la funcionalidad, la capacidad de actualización, el ecosistema de desarrolladores externos y los usuarios finales. Las aplicaciones Hero incluyen Notificaciones, Configuración, Medios y Centro de comunicación/Marcador. Las implementaciones de AOSP correspondientes deben tener calidad de producción.
Superposiciones de recursos Para afectar la representación de la interfaz de usuario, utilice este mecanismo para reemplazar colores, cambiar dimensiones, habilitar el dibujo y aplicar recursos de diseño en tiempo de compilación (el más común) o en tiempo de ejecución (Superposiciones de recursos en tiempo de ejecución (RRO)).
Interfaz de usuario del sistema La interfaz de usuario fuera de una aplicación que pertenece al sistema, como la barra de navegación, la barra de estado, la pantalla de bloqueo y el cuadro de diálogo de volumen.
Tema Una colección de colores y estilos utilizados para determinar la apariencia de los componentes y aplicaciones que heredan el tema.
Experiencia de usuario (UX) El campo del diseño de interfaces de usuario (UI) y su usabilidad.

Personalización

La implementación AOSP de la interfaz de usuario del sistema y otras aplicaciones centrales del sistema sirve como una base sólida para iniciar el proceso de desarrollo de HMI. El ejercicio de modificar la implementación de AOSP (principalmente mediante el uso de superposiciones de recursos) para cumplir con los requisitos legales, comerciales y de marca de un OEM se conoce como personalización .

Si bien el sistema general está diseñado y construido para ser flexible, se espera que los diferentes componentes se personalicen en diferentes grados:

  • Interfaz de usuario del sistema. El OEM puede personalizar o reemplazar la implementación de AOSP dentro de los límites establecidos por CDD y CTS y cualquier otra directriz de UX aplicable.

  • Aplicaciones del sistema que no son héroes (también conocidas como referencia ) . Los OEM pueden personalizar o reemplazar la implementación de AOSP.

  • Aplicaciones de héroe . Cada aplicación viene con un conjunto de pautas de personalización detalladas. Se recomienda encarecidamente a los OEM que utilicen la implementación de AOSP y luego la personalicen dentro de los límites establecidos por esas directrices.

Configuración de densidad

Para garantizar que los elementos de la interfaz de usuario se representen correctamente dada la configuración de la pantalla física, la propiedad de densidad se debe establecer en el depósito ( Display Metrics ) que coincida más estrechamente con la densidad física, como esta entrada en el archivo de compilación:

PRODUCT_PROPERTY_OVERRIDES := \
        ro.sf.lcd_density=160

Motor de restricciones de UX

CarUxRestrictionsManager proporciona un enlace para que las aplicaciones escuchen los cambios relacionados con el estado de conducción para modificar la experiencia del usuario de manera adecuada. Los OEM pueden superponer el archivo de configuración en packages/services/Car/service/res/xml/car_ux_restrictions_map.xml para afectar el comportamiento del sistema.

Tema del sistema

El tema que prescribe el conjunto de elementos predeterminados para todo el sistema, como colores y estilos de texto, es DeviceDefault . Se anima a los OEM a iniciar el proceso de personalización general modificando el tema DeviceDefault. De forma predeterminada, la interfaz de usuario del sistema y todas las aplicaciones del sistema en AOSP heredan de este tema. También se recomienda que las aplicaciones del sistema desarrolladas por OEM hereden DeviceDefault. No se espera que las aplicaciones desarrolladas por terceros hereden DeviceDefault, sino que utilicen Theme.Car proporcionado en la biblioteca androidx.car . Los archivos se encuentran de la siguiente manera:

  • Centro . /frameworks/base/core/res/res/values/themes_device_defaults.xml
  • Colores . /frameworks/base/core/res/res/values/colors_car.xml
  • Estilos . /frameworks/base/core/res/res/values/styles_car.xml
  • Superposición de coches.
    /packages/services/Car/car_product/overlay/.../values/themes_device_defaults.xml

Se espera que los OEM tengan una estructura de superposición paralela al directorio car_product en su directorio de proveedores que amplíe aún más la superposición car_product .

Aplicación Tema de juegos

Esta aplicación agiliza el proceso de personalización del tema DeviceDefault al visualizar todos los atributos del tema en un solo lugar. Además, al comparar cómo se representan ciertos estilos en esta aplicación con otras aplicaciones del sistema, los desarrolladores pueden depurar rápidamente los problemas del tema. Esta aplicación está disponible en:

  /packages/services/Car/tests/ThemePlayground

Interfaz de usuario del sistema

La interfaz de usuario del sistema incluye toda la interfaz de usuario en /frameworks/base , principalmente en /frameworks/base/packages/CarSystemUI . Esto incluye la barra de navegación, la barra de estado, la pantalla de bloqueo, el cuadro de diálogo de volumen, los mensajes informativos, el selector de usuarios y los cuadros de diálogo de permisos. Los OEM pueden personalizar ampliamente los componentes de la interfaz de usuario del sistema mediante superposiciones de recursos y temas, siempre que cada uno cumpla con los requisitos de CDD, CTS y otras pautas de UX aplicables.

Aplicaciones del sistema

Android Automotive incluye un conjunto de aplicaciones centrales del sistema fundamentales para la funcionalidad general del sistema. De ellas, el Centro de comunicación, Medios, Notificaciones y Configuración se consideran aplicaciones destacadas .

  • Centro de comunicación
  • climatización
  • IME (teclado)
  • Lanzador (pantalla de inicio)
  • Reproductor multimedia local
  • Medios de comunicación
  • Mensajero
  • Notificaciones
  • Radio
  • Ajustes

Pantalla de inicio

La pantalla de inicio, conocida como Car Launcher , es la página de inicio de la experiencia HMI. La implementación de AOSP sirve solo como referencia y se espera que los OEM reemplacen la implementación con la suya propia, que a menudo combina navegación, reproducción multimedia, comunicación y otros estados del sistema, según sea necesario. A menudo, la aplicación Car Launcher muestra las aplicaciones disponibles en el sistema. Para aprender a manejar eventos como recientes, cambios de paquetes y aplicaciones sin cabeza (sin actividad del iniciador), consulte la implementación de referencia.

Notificaciones

Las notificaciones son un componente integral del sistema operativo Android y las mismas estructuras (incluidas notificaciones emergentes, lista/centro de notificaciones, API de notificaciones, clasificación y acciones en línea) se han incluido en Android Automotive. Para obtener más información, consulte la descripción general de notificaciones del dispositivo portátil. Para optimizar los casos de uso automotriz, se han realizado las siguientes modificaciones (en comparación con la pila de notificaciones portátil):

  • Reducción del contenido general de las notificaciones visible para los usuarios. Eliminación de la reproducción de medios en curso, la navegación en curso y las notificaciones de servicios en primer plano "sin importancia" (importancia de BAJA e inferior) de las aplicaciones del sistema de la lista/centro de notificaciones, en el entendimiento de que estas notificaciones se vuelven redundantes (por ejemplo, un grupo que muestra el estado de los medios). ) o no son útiles.

  • Eliminación de controles contextuales complejos (como controles basados ​​en pulsación prolongada y longitud de deslizamiento).

  • Respetando la configuración del motor de Restricciones UX.

    • La vista previa del contenido de las notificaciones de mensajería puede ocultarse según el estado de la unidad.
    • Todas las cuerdas tapadas a la longitud máxima.
  • Adición de nuevas categorías de notificación específicamente para automóviles en Android 9, solo disponibles para aplicaciones del sistema empaquetadas que se ejecutan como android.uid.system .

  • CATEGORY_CAR_EMERGENCY . Clasificado en la parte superior de la lista de notificaciones. Omite los controles de No molestar (DND).

  • CATEGORY_CAR_WARNING . Clasificado por debajo de emergencia y por encima de otros (omite DND).
  • CATEGORY_CAR_INFORMATION . Clasificado con el resto de notificaciones según su "importancia" y actualidad.

La implementación de un extremo a otro de la pila de notificaciones, desde las API de notificaciones hasta la interfaz de usuario, se considera una aplicación heroica . Para garantizar una interoperabilidad API consistente en todos los HU y maximizar la capacidad de actualización, se recomienda encarecidamente a los OEM que adopten la implementación de AOSP y luego la personalicen a la ligera.

Personalización

Se aplican las superposiciones de recursos y temas estándar de DeviceDefault. Hay un número muy limitado de botones de personalización de comportamiento disponibles en:

packages/apps/Car/Notification/res/values/config.xml

Ajustes

La aplicación Configuración ( Configuración del automóvil ) es una de las aplicaciones principales que expone perillas, que el usuario puede usar para configurar aspectos del sistema operativo Android y el resto del automóvil. La aplicación Configuración expone más de 200 funciones del sistema operativo, que están estrechamente relacionadas con cada versión importante de Android. Para permitir la capacidad de actualización y evitar la fragmentación, se recomienda encarecidamente a los OEM que adopten la implementación de AOSP y luego la personalicen (en lugar de bifurcar la implementación).

Personalización

La aplicación Configuración tiene en cuenta la personalización y expone varias vías de personalización.

  • Tematización. Permite la personalización visual de cómo se representará cada tipo de objeto de Preferencia, que incluye:

    • Preference.DeviceDefault.CheckBoxPreference

    • Preference.DeviceDefault.DialogPreference.EditTextPreference

  • Personalización de jerarquía. Para habilitar:

    • Inicie en un fragmento raíz arbitrario, superponga el valor de config_settings_hierarchy_root_fragment en el archivo titulado Settings/res/values/config.xml

    • Personalización de elementos como orden, agrupación, texto e íconos, superposición Settings/res/xml/*.xml

  • Inyección estática. Al configurar un proyecto de superposición, los OEM pueden agregar pantallas propietarias definiendo y luego agregando las clases adicionales de Fragmento y Controlador a la jerarquía.

  • Inyección dinámica . Si una aplicación separada ( apk ) alberga una pantalla de Configuración que debe vincularse desde la aplicación de Configuración principal, la aplicación separada se puede inyectar dinámicamente. Para obtener más información, consulte Preferencias dinámicas .

Medios de comunicación

Media es una aplicación principal que proporciona la experiencia del usuario front-end en nombre de las aplicaciones multimedia que implementan las API MediaSession y MediaBrowser . Las aplicaciones multimedia pueden ser aplicaciones de terceros (como Spotify y Pandora), así como otras fuentes multimedia, como transmisión por Bluetooth (BT) y medios locales.

Hay cientos de aplicaciones multimedia disponibles en Android Auto ( Projection ), todas las cuales implementan estas API multimedia como se describe en Proporcionar reproducción de audio para Auto . Las API de medios evolucionan con cada versión importante de Android y con las versiones de la biblioteca Androidx . Para garantizar la interoperabilidad de API en todas las aplicaciones multimedia y versiones futuras de Android, se recomienda encarecidamente a los OEM que adopten la implementación de AOSP y luego la personalicen.

Personalización

La temática estándar a través del tema DeviceDefault también se aplica a los medios. Además, es posible una mayor personalización de la apariencia con superposiciones de recursos, siempre que la personalización esté dentro de los límites de las pautas de UX.

Medios USB y fuentes de medios

En la medida de lo posible, se recomienda encarecidamente que estas fuentes multimedia se conecten a Media mediante una implementación de las API MediaSession y MediaBrowser (esto se aplica a cualquier aplicación multimedia de terceros). Consulte la aplicación LocalMediaPlayer en AOSP. Esta aplicación muestra archivos multimedia locales y se muestra como fuente en Medios.