Se espera que los OEM cambien a la versión más reciente de car-ui-lib-plugin-apis
(1.2.0 o posterior) lo antes posible. Idealmente, los OEMs no deberían enviar ningún complemento que use una versión anterior.
¿Por qué se realizó esta actualización?
Las APIs de Java 8 y versiones posteriores son compatibles con versiones anteriores de Android a través de la compatibilidad con la expansión de sintaxis de APIs de Java 8 y versiones posteriores. Las implementaciones de las APIs faltantes se compilan en apps, y el código de bytes de los APKs se reescriben para hacer referencia a las implementaciones en lugar de las bibliotecas de la plataforma.
La carga de implementaciones de OEM de componentes de IU desde un complemento de la biblioteca de la IU del vehículo requiere la referencia de métodos definidos por interfaces car-ui-lib-plugin-apis
. Estas referencias de métodos se realizan desde apps a complementos de la biblioteca de la IU del vehículo durante el tiempo de ejecución con la expectativa de que las firmas de métodos sean idénticas en las implementaciones de apps y complementos.
Algunos sistemas de compilación habilitan la expansión de sintaxis de la API en todo momento debido a los requisitos de un nivel mínimo de SDK específico. Es posible que las firmas de métodos con expansión de sintaxis para las interfaces car-ui-lib-plugin-apis
no coincidan con las de una implementación de complemento OEM que no se haya expandido, lo que provocará que los complementos no se carguen.
Como resultado, algunas apps de GAS compiladas con el sistema de compilación interno de Google son incompatibles con el complemento de la biblioteca de la IU del vehículo. Por lo tanto, quitamos todas las dependencias de las APIs de Java 8 (y versiones posteriores) que requieren expansión de sintaxis. Este cambio requiere actualizaciones de la API de las interfaces definidas por car-ui-lib-plugin-apis
.
Pasos necesarios para los complementos de OEM
Sigue estos pasos para actualizar tu API:
Actualiza la implementación del complemento para usar la versión más reciente de
car-ui-lib-plugin-apis
. Para obtener la versión más reciente (1.2.0 o una posterior), consulta el repositorio de Maven de Google.Actualiza la implementación del complemento para implementar la interfaz
PluginFactoryOEMV4
. Este cambio requiere los siguientes pasos cuando el complemento del OEM implementa un componente. Actualiza la implementación del OEM de lo siguiente:Barra de herramientas, para implementar
ToolbarControllerOEMV2
.Elementos de lista de contenido para extender
ContentListItemOEMV2
.Manejo de resultados de la búsqueda del IME para extender
ImeSearchInterfaceOEMV2
.
Actualiza la app para usar la versión más reciente de la biblioteca de la IU del vehículo.
¿Qué sucede si no se aplica esta actualización?
Si no se completan los pasos que se proporcionan en esta página para un complemento de OEM, las apps con expansión de sintaxis, como los Servicios de Google Automotive (GAS), no cargan implementaciones del complemento de la biblioteca de la IU del automóvil y no se aplican personalizaciones de OEM a través del mecanismo del complemento.
Las personalizaciones de RRO existentes para la biblioteca de IU del vehículo no se ven afectadas por este problema y siguen funcionando como de costumbre.