Starting March 27, 2025, we recommend using android-latest-release
instead of aosp-main
to build and contribute to AOSP. For more information, see Changes to AOSP.
Appendix C, minimum compatible version for Car UI Plugin API
Stay organized with collections
Save and categorize content based on your preferences.
OEMs are expected to switch to the newest version of car-ui-lib-plugin-apis
(1.2.0 or higher) as soon as possible. Ideally, OEMs shouldn't ship any plugin
that uses an older version.
Why this update?
Java 8+ APIs
are supported for previous versions of Android through Java 8+ API desugaring
support.
Implementations of missing APIs are compiled into apps and the byte code of APKs
are rewritten to reference the implementations instead of the libraries on the
platform.
Loading OEM implementations of UI components from a Car UI Library plugin
requires the referencing of methods defined by car-ui-lib-plugin-apis
interfaces. These method references are made from apps to Car UI Library plugins
at runtime with the expectation that method signatures are identical in app and
plugin implementations.
Some build systems enable API desugaring at all times due to requirements of a
specific minimum SDK level. Desugared method signatures for
car-ui-lib-plugin-apis
interfaces may not match those in an OEM plugin
implementation that has not been desugared, which results in plugins failing to
load.
As a result, some GAS apps compiled with the internal Google build system are
incompatible with the Car UI Library plugin. Therefore, we've removed all
dependencies on Java 8 (and higher) APIs that require desugaring. This change
requires updates to the API of the interfaces defined by
car-ui-lib-plugin-apis
.
Required steps for OEM plugins
Follow these steps to update your API:
Update the plugin implementation to use the latest version of
car-ui-lib-plugin-apis
. To get the latest version of (1.2.0 or higher),
see Google's Maven
Repository.
Update the plugin implementation to implement the PluginFactoryOEMV4
interface. This change requires the following steps when a component is
implemented by the OEM plugin. Update the OEM implementation of:
Toolbar, to implement ToolbarControllerOEMV2
.
Content list items, to extend ContentListItemOEMV2
.
IME search results handing, to extend ImeSearchInterfaceOEMV2
.
Update the app to use the latest version of the Car UI Library.
What happens if this update is not applied?
If the steps provided on this page aren't completed for an OEM plugin, desugared
apps, such as the Google Automotive Services (GAS), fail to load implementations
of the Car UI Library plugin and no OEM customizations are applied through the
plugin mechanism.
Existing RRO customizations for the Car UI Library are not affected by this
issue and continue to perform as usual.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-06-12 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 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."]]