Descripción general de HMI

Android Automotive es una solución de plataforma de infoentretenimiento integrada en el automóvil que se proporciona con la Proyecto de código abierto (AOSP). En los artículos de este tema, se presentan los conceptos y componentes clave proporcionadas por la IU del sistema Android Automotive y las apps principales necesarias para crear un modelo Sistema de interfaz de máquina (HMI) para OEM, desarrolladores externos y usuarios finales.

  • Guía de integración de host del AOSP. El host de la app permite que las apps de terceros para vehículos rendericen componentes de la interfaz de usuario (IU) con estilo de OEM en su nombre.
  • Estructura de la Configuración del vehículo. La Configuración del vehículo ofrece una interfaz de usuario visual centrada en el vehículo, la distracción básica del conductor optimizaciones y puntos de entrada de personalización adicionales para los OEM.
  • Guía de integración de la biblioteca de IU del vehículo. La biblioteca de IU del vehículo proporciona un framework de desarrollo de IU para habilitar todas las apps presentes en la el auto para lograr coherencia y personalización.
  • Cómo personalizar los íconos del sistema de la barra de estado La barra de estado es un componente de la IU del sistema Android que se usa para mostrar de forma persistente importante para los usuarios. Aprende a personalizar los íconos del sistema de la barra de estado.
  • Notificaciones de atención. Obtén más información sobre cómo personalizar las notificaciones de atención.
  • Teléfono: Usa esta app del sistema Android para implementar una experiencia optimizada para distracción (DO) de Bluetooth las llamadas, la navegación de contactos y la administración de llamadas.
  • Contenido multimedia. Con solo unos pocos parámetros de configuración y un servicio, los desarrolladores pueden extender las apps multimedia existentes. Si bien las apps deben cumplir con las Automotive, los desarrolladores pueden personalizar los colores de la plantilla, las fuentes, los íconos y más para crear una experiencia de marca.
  • Notificaciones. Obtén más información sobre cómo cambiar la apariencia y la configuración de las notificaciones.

Terminología

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

Término Definición
Apps principales El conjunto clave de apps esenciales para la funcionalidad del sistema, como Configuración, Radio, HVAC, contenido multimedia, Teléfono y teclado.
Documento de definición de compatibilidad (CDD) Enumera los requisitos que deben cumplirse para que los dispositivos sean compatibles con la versión más reciente. versión de Android.
Conjunto de pruebas de compatibilidad (CTS) Paquete de pruebas gratuito y de nivel comercial, disponible para descargar en Descargas del Conjunto de pruebas de compatibilidad:
Personalización El ejercicio de modificar una implementación de AOSP para cumplir con los requisitos de un OEM. Normalmente, esto implica el uso de superposiciones de recursos para aplicar cambios estéticos y, al mismo tiempo, garantizando el cumplimiento del CDD, el CTS y todos los lineamientos relevantes de la experiencia del usuario.
Apps hero Es un conjunto de apps clave que son esenciales 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 apps de impacto incluyen Notificaciones, Configuración, Contenido multimedia y el Centro de comunicaciones o Teléfono. AOSP correspondiente implementaciones deben ser de calidad de producción.
Superposiciones de recursos Para afectar la renderización de la interfaz de usuario, usa este mecanismo para reemplazar colores. cambia las dimensiones, habilita el dibujo y aplica recursos de diseño en tiempo de compilación (más común) o en el entorno de ejecución (Superposiciones de recursos del entorno de ejecución [RRO]).
IU del sistema La interfaz de usuario fuera de una app que pertenece al sistema, como la barra de navegación, barra de estado, pantalla de bloqueo y diálogo de volumen.
Tema Una colección de colores y estilos que se usa para determinar el aspecto de los componentes y las que heredan el tema.
Experiencia del usuario (UX) El campo del diseño de la interfaz de usuario (IU) y su usabilidad.

Personalización

La implementación de AOSP de la IU del sistema y otras apps principales del sistema sirve la base para iniciar el proceso de desarrollo de HMI. El ejercicio de modificar el AOSP (principalmente, mediante el uso de superposiciones de recursos) para cumplir con el desarrollo de la marca, el negocio y requisitos legales se denomina personalización.

Si bien el sistema general está diseñado y creado para ser flexible, se esperan diferentes componentes. personalizarse en diferentes grados:

  • IU del sistema. OEM puede personalizar o reemplazar la implementación de AOSP dentro del de los límites establecidos por el CDD, el CTS y cualquier otro lineamiento de UX aplicable.

  • Apps del sistema que no son hero (también conocidas como referencia). Los OEMs pueden personalizar o reemplazar la implementación de AOSP.

  • Apps de impacto. Cada app incluye un conjunto de lineamientos detallados de personalización. Recomendamos a los OEM que usen la implementación de AOSP y que luego la personalicen dentro del límites que brindan esas pautas.

Configuración de densidad

Para garantizar que los elementos de la IU se rendericen correctamente según la configuración física de la pantalla, la densidad la propiedad se debe establecer en el bucket (Métricas de Display) que coincida lo más posible 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

CarUxRestriccionesManager proporciona un contenido atractivo para que las apps escuchen los cambios. con el estado de conducción para modificar la experiencia del usuario de forma adecuada. Los OEM pueden superponer el de configuración de Terraform 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 predeterminado de elementos en todo el sistema, como los colores y estilos de texto, es DeviceDefault. Se alienta a los OEM a iniciar el proceso general de personalización modificando el tema DeviceDefault. De forma predeterminada, la IU del sistema y todas las apps del sistema del AOSP se heredan de este tema. También se recomienda que las apps del sistema desarrolladas por OEM hereden DeviceDefault. Terceros No se espera que las apps desarrolladas hereden DeviceDefault, sino que usen Theme.Car que se proporciona en la biblioteca androidx.car. Los archivos se encuentran de la siguiente manera:

  • Core. /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 automóviles
    /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 extiende aún más la superposición de car_product.

App de Theme Playground

Esta app optimiza el proceso de personalización del tema DeviceDefault al visualizando todos los atributos del tema en un solo lugar. Además, si comparas cómo se renderizan ciertos estilos en este en comparación con otras apps del sistema, los desarrolladores pueden depurar rápidamente los problemas de temas. Esta app es disponible en:

  /packages/services/Car/tests/ThemePlayground

IU del sistema

La IU del sistema incluye todas las IU de /frameworks/base, principalmente en /frameworks/base/packages/CarSystemUI Esto incluye la barra de navegación, la barra de estado, pantalla de bloqueo, diálogo de volumen, avisos, selector de usuario y diálogos de permisos. Los OEMs pueden personalizar el componentes de la IU del sistema ampliamente a través de superposiciones de recursos y temas, siempre que cada uno esté dentro del los requisitos del CDD, el CTS y otros lineamientos aplicables de UX.

Apps del sistema

Android Automotive incluye un conjunto de apps del sistema principales que son fundamentales para el sistema en general funcionalidad. El Centro de comunicaciones, el contenido multimedia, las notificaciones y la configuración son consideradas apps hero.

  • Centro de comunicaciones
  • HVAC
  • IME (teclado)
  • Selector (pantalla principal)
  • Reproductor multimedia local
  • Contenido multimedia
  • Messenger
  • Notificaciones
  • Radio
  • Configuración

Pantalla principal

La pantalla principal, conocida como Selector de vehículos, es la página de destino de la experiencia de HMI. La implementación del AOSP sirve solo como referencia, y se espera que los OEM reemplacen implementación con las suyas, que a menudo combina navegación, reproducción de contenido multimedia, comunicación y otros estados del sistema, según sea necesario. Con frecuencia, la app del Selector de vehículos muestra las apps disponibles en el sistema. Descubre cómo controlar eventos como recientes, cambios de paquetes y headless (sin actividad de selector), consulta la implementación de referencia.

Notificaciones

Las notificaciones son un componente integral del SO Android y las mismas construcciones (incluidas las notificación de atención, lista/centro de notificaciones, APIs de notificación, clasificación y acciones intercaladas) se incluyeron en Android Automotive. Para obtener más información, consulta la documentación Notificaciones Descripción general. Para optimizar los casos de uso de la industria automotriz, se realizaron las siguientes modificaciones (en comparación con el pila de notificaciones portátil):

  • Reducción del contenido general de las notificaciones visible para los usuarios. Eliminación de la reproducción de contenido multimedia en curso, la navegación continua y (importancia de LOW e inferior) las notificaciones de servicio en primer plano de las aplicaciones del sistema desde la lista o el centro de notificaciones, con el comprender que estas notificaciones son redundantes (p. ej., un clúster que muestra el estado del contenido multimedia) o no son útiles.

  • Eliminación de controles contextuales complejos (como mantener presionado y según la longitud de deslizamiento de seguridad).

  • Respeta la configuración del motor de restricciones de UX.

    • Es posible que la vista previa del contenido de las notificaciones de mensajes esté oculta en función del estado de conducción.
    • Todas las cadenas tienen una longitud máxima.
  • Se agregaron nuevas categorías de notificación específicamente para los automóviles de Android 9, solo disponible para apps de sistema empaquetadas que se ejecutan como android.uid.system

  • CATEGORY_CAR_EMERGENCY Clasificado en la parte superior de la lista de notificaciones. evasiones controles No interrumpir.

  • CATEGORY_CAR_WARNING Clasificada por debajo de emergencia y por encima de otras (evitan No interrumpir).
  • CATEGORY_CAR_INFORMATION Se clasifican con el resto de las notificaciones en función de “importancia” y compras recientes.

La implementación de extremo a extremo de la pila de notificaciones, desde las APIs de notificación hasta la IU, es se considera una app hero. Para garantizar la interoperabilidad de la API coherente entre todas las HU maximizar la capacidad de actualización, se recomienda a los OEM que realicen la implementación de AOSP y, luego, personalízalo un poco.

Personalización

Se aplican las superposiciones de recursos y temas DeviceDefault estándar. Un número muy limitado de Estos controles están disponibles en las siguientes ubicaciones:

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

Configuración

La app de Configuración (Configuración del vehículo) es una de las apps hero que expone perillas, que el usuario puede usar para configurar aspectos del SO Android y el resto del vehículo. La configuración expone más de 200 funciones en el SO, que están estrechamente relacionadas con cada una de las principales Versión de Android Para habilitar la capacidad de actualización y evitar la fragmentación, se recomienda a los OEMs tomar la implementación de AOSP y personalizarla (en lugar de bifurcar la implementación).

Personalización

La app de Configuración tiene en cuenta la personalización y expone varios canales para personalización.

  • Temas. Habilita la personalización visual del modo en que cada tipo de objeto Preference se debe renderizar, incluidos los siguientes:

    • Preference.DeviceDefault.CheckBoxPreference

    • Preference.DeviceDefault.DialogPreference.EditTextPreference

  • Personalización de la jerarquía Para habilitar las siguientes funciones:

    • Inicia en un fragmento raíz arbitrario, superpón el valor del config_settings_hierarchy_root_fragment en el archivo con el título Settings/res/values/config.xml

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

  • Inyección estática: Al configurar un proyecto de superposición, los OEMs pueden agregar pantallas exclusivas definiendo y, luego, agregando las clases adicionales Fragment y Controller. a la jerarquía.

  • Inserción dinámica. Si una app independiente (apk) aloja una Configuración que debe vincularse desde la app principal de Configuración, se puede inyectarse dinámicamente. Para obtener más información, consulta Preferencias dinámicas.

Contenido multimedia

El contenido multimedia es una app hero que proporciona la experiencia del usuario de frontend en nombre del contenido multimedia aplicaciones que implementan el MediaSession y MediaBrowser. APIs Las apps multimedia pueden ser apps de terceros (como Spotify y Pandora), así como otras fuentes de medios, como la transmisión mediante Bluetooth (BT) y los medios locales.

Hay cientos de apps multimedia disponibles en Android Auto (Proyección), y todas ellas implementar estas APIs multimedia como se describe en Brindar reproducción de audio para Auto. Las APIs de medios evolucionan con las versiones principales de Android y con los lanzamientos de la Androidx. Para garantizar la interoperabilidad de la API en todas las apps multimedia y futuras versiones de Android, los OEMs Se recomienda que tomes la implementación de AOSP y la personalices.

Personalización

Los temas estándar mediante el tema DeviceDefault también se aplican a contenido multimedia. Además, Se puede personalizar la apariencia y el estilo con superposiciones de recursos, siempre que la personalización sea dentro de los límites de los lineamientos de UX.

Fuentes multimedia y USB

En la medida de lo posible, se recomienda conectar estas fuentes de contenido multimedia a ese tipo de contenido. a través de la implementación de MediaSession y MediaBrowser APIs (esto se aplica a cualquier app multimedia de terceros). Consulta la app de LocalMediaPlayer en el AOSP. Esta app muestra archivos multimedia locales y se muestra como una fuente en Contenido multimedia.