Usa la IU escalable para crear experiencias de usuario sofisticadas, dinámicas y de varios paneles en automóviles. IU escalable:
Proporciona un sistema de ventanas flexible.
Minimiza los riesgos, los costos y las complejidades de ingeniería que presenta el Conjunto de pruebas de compatibilidad (CTS) para las implementaciones de la interfaz de usuario.
La IU escalable admite una amplia variedad de diseños modernos de infoentretenimiento en el vehículo (IVI) que necesitan disposiciones de ventanas dinámicas, y también se reduce para admitir experiencias tradicionales con disposiciones de ventanas estáticas.
Android 17 introduce las siguientes funciones específicas para el ventanas avanzado:
- Implementar paneles de notificaciones de Alerta
- Cómo personalizar las barras del sistema
- Maximiza el cumplimiento de las pruebas con las invariantes de WindowManager
- Integra el Asistente de configuración
Ejemplos de experiencias
La IU escalable permite una variedad infinita de configuraciones de ventanas. Estos son algunos ejemplos de situaciones creadas para probar la IU escalable:
Fondo del mapa con apps flotantes
Una configuración de fondo de mapa con otras aplicaciones flotando en la parte superior.
Segundo plano de la app
Una configuración de fondo de aplicación con paneles flotantes.
App fijada debajo de otras apps
Una aplicación fijada, como un contenedor de widgets, con otras aplicaciones que se inician en la parte superior.
Panel flotante condicional
Es un panel flotante condicional que aparece solo cuando se cumplen condiciones específicas, como cuando se reproduce contenido multimedia o cuando se activa una alerta.
App fijada cerca del conductor
Una aplicación fijada ubicada más cerca del conductor.
Diseño de pantalla dividida
Diseño de pantalla dividida que muestra dos aplicaciones en paralelo.
Pantalla dividida interactiva
Un diseño interactivo de pantalla dividida que permite cambiar el tamaño de forma dinámica.
Diseño de varios anclajes para pantallas grandes
Diseño de varios anclajes diseñado para pantallas grandes.
Carrusel de apps de la pantalla principal
Diseño de pantalla principal con un carrusel de aplicaciones.
Beneficios y cumplimiento
Los beneficios de la IU escalable incluyen lo siguiente:
Menor riesgo de pruebas: El framework está certificado previamente y cumple con el CTS, lo que elimina el riesgo principal de fallas en las pruebas en las últimas etapas de un ciclo del programa. La IU escalable puede ahorrar meses de esfuerzo de ingeniería y acelerar el cumplimiento.
Mayor flexibilidad de diseño: Capacidad comprobada para recrear numerosos modelos de ventanas automotrices existentes y complejos. La IU escalable admite diseños ambiciosos y muy diferenciados.
Menos complejidad de implementación: La abstracción en un modelo XML de alto nivel basado en la configuración reduce la barrera de entrada para la lógica de ventanas personalizada.
Mejor rendimiento: La IU escalable se ejecuta en una base de ventanas de alto rendimiento, completamente integrada en Android estándar. Las transiciones fluyen sin problemas, lo que permite una optimización directa.
Los elementos básicos
La IU escalable minimiza la necesidad de código específico del OEM, facilita las actualizaciones y reduce los riesgos de lanzamiento, ya que elimina los problemas y reduce los inconvenientes relacionados con la certificación.
El enfoque basado en XML aborda los desafíos comunes cuando se administran sistemas de ventanas complejos en AAOS, como el posicionamiento preciso, los conflictos de orden Z y el enfoque de la app.
La IU escalable proporciona estos componentes básicos centrales.
Panel
Un panel es el contenedor rectangular fundamental en la pantalla. Cada panel se asigna a una tarea raíz dedicada para su administración independiente. Un panel puede alojar tareas de la app (TaskPanel) o contenido basado en vistas, como widgets (DecorPanel). Para obtener más información, consulta Cómo configurar un panel.
Variant
Una variante define un estado visual específico para un panel y, además, incluye propiedades como bounds (posición y tamaño), visibility, layer (orden Z) y radio de corner. Un solo panel puede tener variantes, como opened, closed o minimized. Para obtener más información, consulta Cómo usar una variante para diseñar un estado visual.
Transición
Una transición define cómo un panel se mueve de su estado actual fromVariant a un estado nuevo, toVariant. Un Event activa la transición, que define la animación que usa el panel durante el cambio de estado. Un panel debería pasar de su estado actual a toVariant. Para la sincronización, el administrador de ventanas principal anima y coordina todas las transiciones.
- Evento: Es un activador para iniciar un cambio en la IU. Un OEM o el sistema pueden predefinir un activador. Por ejemplo,
_System_OnHomeEvent,_System_TaskOpenEvento la presión de un botón de navegación personalizado.
Por ejemplo, la IU escalable usa eventos para activar transiciones. Estas transiciones animan un panel de una variante a otra para mostrar cambios dinámicos en la IU. La IU escalable comunica estos cambios a otras apps del sistema para ajustar el contenido según sea necesario. Si defines relaciones de la IU en XML, puedes hacer lo siguiente:
Especifica comportamientos complejos de la IU: Define interacciones complejas de la interfaz de usuario.
Organizar sistemas de ventanas: Controla la posición y la disposición en capas de las ventanas.
Implementa temas visuales: Aplica una estética y un desarrollo de la marca coherentes.
Reducción de la complejidad del código: Minimiza la necesidad de un desarrollo extenso de código personalizado.
Para obtener más información, consulta Cómo configurar una transición.
Botones de la IU del sistema
Además de activar intents, CarSystemBarButtons puede activar un evento de IU escalable cuando se presiona con los atributos event, selectedEvent y unselectedEvent.
event describe el evento que se activará cuando se presione el botón. Si se requiere un control más detallado sobre un evento, usa los atributos selectedEvent y unselectedEvent para especificar el evento que se activará cuando se seleccione o deseleccione el botón, respectivamente.
Cuándo implementar la IU del sistema
En esta sección, se describen los usos óptimos de la IU escalable.
- Crea diseños de varios paneles persistentes
- Implementa una escena principal dinámica
- Cómo aplicar superposiciones contextuales
- Diseña interacciones complejas con paneles
Cómo crear diseños persistentes de varios paneles
Crea una experiencia multizona en la que diferentes áreas de la pantalla se dediquen de forma permanente a funciones específicas. Por ejemplo, controles multimedia exclusivos, una barra de clima o un mapa en pantalla completa.
Usa TaskPanels para las apps principales (como la navegación) y DecorPanels para los elementos de la IU, en forma de vistas, que deben colocarse entre TaskPanels.
Implementa una escena de casa dinámica
Implementa una escena de página principal compuesta por varios paneles de apps interactivos y visibles de forma simultánea. Por ejemplo, el mapa, el reproductor multimedia y la cuadrícula de apps.
Para hacer la transición de todos los paneles pertinentes a sus variantes principales opened o default, configura _System_HomeEvent.
Cómo aplicar superposiciones contextuales
Coloca elementos de la IU que no sean de la app, como widgets contextuales, desarrollo de la marca personalizado y barras de arrastre que se pueden animar en coordinación con las tareas de la app.
Usa DecorPanels para todos los elementos puramente decorativos o que alojan widgets. Si un widget aloja una app completamente funcional que se puede iniciar, lo ideal es usar Panel > TaskPanel. Usa DecorPanels para los elementos de la IU basados en vistas cuando la disposición en capas debe sincronizarse con la disposición en capas de TaskPanel.
Diseña interacciones complejas del panel
Diseñar acciones avanzadas controladas por el usuario, como cambiar el tamaño de un panel de la app de forma dinámica o ajustar las vistas del panel de instrumentos según el contenido de la pantalla principal
Define Events personalizado para activar Transitions específicos que no sean estándar del sistema.
Extiende los diseños de IVI a una cabina digital unificada
La IU escalable administra la visualización en ventanas multipanel (TaskPanel y DecorPanel) en la pantalla principal de infoentretenimiento (display0) de la VM de SDV IVI. Puedes combinar la IU adaptable con Display Safety para actualizar las vistas del panel de instrumentos cuando cambia el diseño de la pantalla principal:
- Acciones de IU escalables (VM de
SDV IVI): Cuando cambia el estado de un panel en la pantalla principal, la IU escalable puede enviar un intent con un<Action>enxml/scalable_ui_actions.xmlpara notificar a los componentes del clúster sobre los cambios de diseño o modo. Para obtener más información, consulta Cómo configurar una acción. - DriverUI (VM de
SDV IVI): Se ejecuta en la pantalla del clúster (display1) como una app del sistema que iniciaClusterHomeManagery se compila conautomotive-design-compose.DriverUIrenderiza contenido de clústeres que no son de seguridad (como mapas, contenido multimedia y llamadas telefónicas) y controla las actualizaciones de estado del sistema IVI. - Puerta de enlace de SDV en IVI (VM de
SDV IVI):DriverUIusaSDV Gateway Clientpara conectarse al renderizador de alta disponibilidad (HAR) a través de gRPC (driverui.proto).DriverUIenvía actualizaciones del estado del clúster (como variantes de diseño, tokens de tema y cambios de configuración regional) junto con mensajes de latido periódicos. HARy Safety Monitor (VM deSDV Media): Se ejecutan en una VM deSDV Mediaindependiente para renderizar elementos críticos para la seguridad (como la velocidad, la marcha, las luces de advertencia, las campanillas y las transmisiones de la cámara retrovisora). Mientras recibe latidos deDriverUI,HARmantiene transparentes las regiones del clúster de Android para que el contenido deDriverUIse combine con las superposiciones de seguridad deHAR. SiSDV IVIse está iniciando o no está disponible,HARmuestra marcadores de posición de resguardo.- Configuración del OEM: Para configurar este flujo, configura los activadores de
<Event>y los intents de<Action>enxml/scalable_ui_actions.xmlenSDV IVI, actualiza el archivo de diseño de Figma y las asignaciones de señales deConfig.jsonpara la cadena de herramientas de diseño de seguridad y, luego, implementa la capa de abstracción de la plataforma (PAL) de HAR para el hardware de destino.