A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release
en lugar de aosp-main
para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
Apéndice C, versión mínima compatible con la API del complemento de la IU del vehículo
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
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 vehículo 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.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-06-12 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-06-12 (UTC)"],[],[],null,["# Appendix C, minimum compatible version for Car UI Plugin API\n\nOEMs are expected to switch to the newest version of `car-ui-lib-plugin-apis`\n(1.2.0 or higher) as soon as possible. Ideally, OEMs shouldn't ship any plugin\nthat uses an older version.\n\nWhy this update?\n----------------\n\n[Java 8+](https://developer.android.com/studio/write/java8-support-table) APIs\nare supported for previous versions of Android through [Java 8+ API desugaring\nsupport](https://developer.android.com/studio/write/java8-support#library-desugaring).\nImplementations of missing APIs are compiled into apps and the byte code of APKs\nare rewritten to reference the implementations instead of the libraries on the\nplatform.\n\nLoading OEM implementations of UI components from a Car UI Library plugin\nrequires the referencing of methods defined by `car-ui-lib-plugin-apis`\ninterfaces. These method references are made from apps to Car UI Library plugins\nat runtime with the expectation that method signatures are identical in app and\nplugin implementations.\n\nSome build systems enable API desugaring at all times due to requirements of a\nspecific minimum SDK level. Desugared method signatures for\n`car-ui-lib-plugin-apis` interfaces may not match those in an OEM plugin\nimplementation that has not been desugared, which results in plugins failing to\nload.\n\nAs a result, some GAS apps compiled with the internal Google build system are\nincompatible with the Car UI Library plugin. Therefore, we've removed all\ndependencies on Java 8 (and higher) APIs that require desugaring. This change\nrequires updates to the API of the interfaces defined by\n`car-ui-lib-plugin-apis`.\n\nRequired steps for OEM plugins\n------------------------------\n\nFollow these steps to update your API:\n\n1. Update the plugin implementation to use the latest version of\n `car-ui-lib-plugin-apis`. To get the latest version of (1.2.0 or higher),\n see [Google's Maven\n Repository](https://maven.google.com/web/index.html#com.android.car.ui:car-ui-lib-plugin-apis).\n\n2. Update the plugin implementation to implement the `PluginFactoryOEMV4`\n interface. This change requires the following steps when a component is\n implemented by the OEM plugin. Update the OEM implementation of:\n\n 1. Toolbar, to implement `ToolbarControllerOEMV2`.\n\n 2. Content list items, to extend `ContentListItemOEMV2`.\n\n 3. IME search results handing, to extend `ImeSearchInterfaceOEMV2`.\n\n3. Update the app to use the latest version of the Car UI Library.\n\nWhat happens if this update is not applied?\n-------------------------------------------\n\nIf the steps provided on this page aren't completed for an OEM plugin, desugared\napps, such as the Google Automotive Services (GAS), fail to load implementations\nof the Car UI Library plugin and no OEM customizations are applied through the\nplugin mechanism.\n\nExisting RRO customizations for the Car UI Library are not affected by this\nissue and continue to perform as usual."]]