Descripción general de HMI

Android Automotive es una solución de plataforma de información y entretenimiento en 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 de Android y las aplicaciones principales necesarias para crear un sistema de interfaz hombre-máquina (HMI) efectivo para OEM, desarrolladores externos y usuarios finales.

  • Guía de integración del host AOSP . App Host permite que las aplicaciones de automóviles de 3P representen componentes de interfaz de usuario (UI) de estilo OEM en su nombre.
  • Estructura de configuración del automóvil . 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 OEM.
  • Guía de integración de la biblioteca de interfaz de usuario del automóvil . Car UI Library proporciona un marco de desarrollo de UI para permitir que todas las aplicaciones presentes en el automóvil logren consistencia 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 información importante a los usuarios de manera persistente. Aprenda a personalizar los iconos del sistema de la barra de estado.
  • Notificaciones de alerta . Aprenda a personalizar las notificaciones de Heads-Up.
  • marcador Utilice esta aplicación del sistema Android para implementar una experiencia optimizada para distracciones (DO) para llamadas Bluetooth, exploración de contactos y gestión de llamadas.
  • Medios Con solo unas pocas configuraciones y un servicio, los desarrolladores pueden ampliar las aplicaciones multimedia existentes. Si bien las aplicaciones deben cumplir con la plantilla de medios automotrices, los desarrolladores pueden personalizar los colores, las fuentes, los íconos y más de la plantilla para crear una experiencia de marca.
  • notificaciones Aprende a cambiar la apariencia y 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 críticas para la funcionalidad del sistema, que incluye 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) Conjunto de pruebas gratuito de calidad comercial, disponible para descargar en Descargas de conjuntos de pruebas de compatibilidad .
personalización El ejercicio de modificar una implementación AOSP para cumplir con los requisitos de un OEM. Por lo general, esto implica el uso de superposiciones de recursos para aplicar cambios estéticos y, al mismo tiempo, garantizar el cumplimiento de la CDD, CTS y todas las pautas relevantes de experiencia del usuario.
Aplicaciones de héroe Un conjunto de aplicaciones clave críticas para todos los aspectos de Android, incluida la funcionalidad, la capacidad de actualización, el ecosistema de desarrolladores de terceros y los usuarios finales. Las aplicaciones Hero incluyen Notificaciones, Configuración, Medios y el Centro de comunicación/Marcador. Las implementaciones AOSP correspondientes deben ser de calidad de producción.
superposiciones de recursos Para afectar la representación de la interfaz de usuario, use este mecanismo para reemplazar colores, cambiar dimensiones, habilitar el dibujo y aplicar recursos de diseño en tiempo de compilación (más común) o en tiempo de ejecución (Superposiciones de recursos de 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 las aplicaciones que heredan el tema.
Experiencia de usuario (UX) El campo del diseño de la interfaz de usuario (UI) y su usabilidad.

personalización

La implementación de 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 denomina 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:

  • IU del sistema. El OEM puede personalizar o reemplazar la implementación de AOSP dentro de los límites proporcionados por CDD y CTS y cualquier otra guía 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 enfáticamente a los OEM que utilicen la implementación de AOSP y luego la personalicen dentro de los límites permitidos por esas pautas.

Configuración de densidad

Para garantizar que los elementos de la interfaz de usuario se reproduzcan correctamente dada la configuración de visualización física, la propiedad de densidad debe establecerse en el depósito ( Métricas de visualización ) que coincida más 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 gancho 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 en todo el sistema, como colores y estilos de texto, es DeviceDefault . Se alienta a los OEM a comenzar 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 de 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:

  • Núcleo /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 superpuesta paralela al directorio car_product en su directorio de proveedores que amplíe aún más la superposición car_product .

Aplicación de juegos temáticos

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 en comparació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, las alertas, 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 a través de 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 de sistema básicas críticas para la funcionalidad general del sistema. De estos, el Centro de comunicaciones, Medios, Notificaciones y Configuración se consideran aplicaciones destacadas .

  • Centro de comunicaciones
  • 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 de medios, 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 obtener información sobre cómo manejar eventos como aplicaciones recientes, cambios de paquetes y aplicaciones autónomas (sin actividad de iniciador), consulte la implementación de referencia.

Notificaciones

Las notificaciones son un componente integral del sistema operativo Android y las mismas construcciones (incluidas las notificaciones emergentes, la lista/centro de notificaciones, las API de notificaciones, la clasificación y las acciones en línea) se han incluido en Android Automotive. Para obtener más información, consulte la descripción general de las notificaciones de la computadora de mano. Para optimizar los casos de uso automotriz, se han realizado las siguientes modificaciones (en comparación con la pila de notificación 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 servicio en primer plano "sin importancia" (importancia de BAJO y por debajo) de las aplicaciones del sistema de la lista/centro de notificaciones, con el entendimiento de que estas notificaciones son redundantes (p. ej., un grupo que muestra el estado de los medios ) o no son útiles.

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

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

    • La vista previa del contenido de la notificación de mensajería puede estar oculta según el estado de la unidad.
    • Todas las cadenas limitadas a la longitud máxima.
  • Se agregaron nuevas categorías de notificación específicamente para autos en Android 9, solo disponibles para aplicaciones de sistema integradas 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 (pasa por alto DND).
  • CATEGORY_CAR_INFORMATION . Clasificado con el resto de las notificaciones en función de la "importancia" y la actualidad.

La implementación integral de la pila de notificaciones, desde las API de notificación hasta la interfaz de usuario, se considera una aplicación destacada . Para garantizar la interoperabilidad uniforme de la API en todas las HU y maximizar la capacidad de actualización, se recomienda enfáticamente a los OEM que tomen la implementación de AOSP y luego la personalicen ligeramente.

personalización

Se aplican los temas estándar de DeviceDefault y las superposiciones de recursos. Un número muy limitado de perillas de personalización de comportamiento están 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 heroicas 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 en el sistema operativo, que están estrechamente relacionadas con cada versión principal de Android. Para habilitar la capacidad de actualización y evitar la fragmentación, se recomienda encarecidamente a los OEM que tomen 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 para la 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 la jerarquía. Para habilitar:

    • Inicie 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, 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 destacada que brinda la experiencia del usuario de front-end en nombre de las aplicaciones de medios que implementan las API de MediaSession y MediaBrowser . Las aplicaciones de medios pueden ser aplicaciones de terceros (como Spotify y Pandora), así como otras fuentes de medios, como transmisión por Bluetooth (BT) y medios locales.

Cientos de aplicaciones de medios están disponibles en Android Auto ( Proyección ), todas las cuales implementan estas API de medios 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 la API en todas las aplicaciones de medios y futuras versiones de Android, se recomienda encarecidamente a los OEM que tomen la implementación de AOSP y luego la personalicen.

personalización

La tematización 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.

Otras aplicaciones multimedia

Medios USB y fuentes de medios

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