Apéndice C, versión compatible mínima para la API del complemento de interfaz de usuario del automóvil

Se espera que los OEM cambien a la versión más reciente de car-ui-lib-plugin-apis (1.2.0 o superior) lo antes posible. Idealmente, los OEM no deberían enviar ningún complemento que use una versión anterior.

¿Por qué esta actualización?

Las API de Java 8+ son compatibles con versiones anteriores de Android a través de la compatibilidad con la eliminación de azúcar de la API de Java 8+ . Las implementaciones de las API que faltan se compilan en aplicaciones y el código de bytes de los APK se reescribe para hacer referencia a las implementaciones en lugar de a las bibliotecas de la plataforma.

La carga de implementaciones OEM de componentes de interfaz de usuario desde un complemento Car UI Library requiere la referencia de métodos definidos por las interfaces car-ui-lib-plugin-apis . Estas referencias a métodos se realizan desde aplicaciones a complementos de la biblioteca de interfaz de usuario de automóviles en tiempo de ejecución con la expectativa de que las firmas de métodos sean idénticas en las implementaciones de aplicaciones y complementos.

Algunos sistemas de compilación permiten la eliminación de azúcar de API en todo momento debido a los requisitos de un nivel de SDK mínimo específico. Las firmas de métodos sin azúcar para las interfaces car-ui-lib-plugin-apis pueden no coincidir con las de una implementación de complemento OEM que no ha sido sin azúcar, lo que hace que los complementos no se carguen.

Como resultado, algunas aplicaciones de GAS compiladas con el sistema de compilación interno de Google son incompatibles con el complemento Car UI Library. Por lo tanto, eliminamos todas las dependencias de las API de Java 8 (y versiones posteriores) que requieren eliminación de azúcar. Este cambio requiere actualizaciones de la API de las interfaces definidas por car-ui-lib-plugin-apis .

Pasos necesarios para complementos OEM

Los pasos a continuación describen cómo actualizar su API.

  1. Actualice la implementación del complemento para usar la última versión de car-ui-lib-plugin-apis . Para obtener la última versión de (1.2.0 o superior), consulte el Repositorio Maven de Google .

  2. Actualice la implementación del complemento para implementar la interfaz PluginFactoryOEMV4 . Este cambio requiere los siguientes pasos cuando el complemento OEM implementa un componente. Actualice la implementación OEM de:

    1. Barra de herramientas, para implementar ToolbarControllerOEMV2 .

    2. Elementos de la lista de contenido, para ampliar ContentListItemOEMV2 .

    3. Entrega de resultados de búsqueda IME, para extender ImeSearchInterfaceOEMV2 .

  3. Actualice la aplicación para usar la última versión de Car UI Library.

¿Qué pasa si no se aplica esta actualización?

Si los pasos proporcionados anteriormente no se completan para un complemento OEM, las aplicaciones sin azúcar, como Google Automotive Services (GAS), no pueden cargar las implementaciones del complemento Car UI Library y no se aplican personalizaciones OEM a través del mecanismo del complemento.

Las personalizaciones de RRO existentes para Car UI Library no se ven afectadas por este problema y continúan funcionando como de costumbre.