附录 C,Car UI 插件 API 的最低兼容版本

OEM 厂商应尽快切换到最新版本的 car-ui-lib-plugin-apis(1.2.0 或更高版本)。理想情况下,OEM 厂商不应发布任何使用旧版本的插件。

为何更新?

Java 8+ API 通过 Java 8+ API 解糖支持为以前版本的 Android 提供支持。缺失 API 的实现已编译到应用中,并且 APK 的字节码已重写,以引用这些实现而不是平台上的库。

从 Car UI 库插件加载 UI 组件的 OEM 实现需要引用由 car-ui-lib-plugin-apis 接口定义的方法。这些方法引用在运行时从应用到 Car UI 库插件进行,并期望方法签名在应用和插件实现中是相同的。

由于特定最低 SDK 级别的要求,某些构建系统始终启用 API 解糖。car-ui-lib-plugin-apis 接口的解糖方法签名可能与尚未解糖的 OEM 插件实现中的签名不匹配,这会导致插件加载失败。

因此,一些使用 Google 内部构建系统编译的 GAS 应用与 Car UI 库插件不兼容。因此,我们移除了所有需要解糖的 Java 8(及更高版本)API 的依赖项。此更改需要更新 car-ui-lib-plugin-apis 定义的接口的 API。

OEM 插件的必需步骤

请按照以下步骤更新您的 API

  1. 更新插件实现以使用最新版本的 car-ui-lib-plugin-apis。要获取最新版本(1.2.0 或更高版本),请参阅Google 的 Maven 代码库

  2. 更新插件实现以实现 PluginFactoryOEMV4 接口。当组件由 OEM 插件实现时,此更改需要执行以下步骤。更新 OEM 实现的

    1. 工具栏,以实现 ToolbarControllerOEMV2

    2. 内容列表项,以扩展 ContentListItemOEMV2

    3. IME 搜索结果处理,以扩展 ImeSearchInterfaceOEMV2

  3. 更新应用以使用最新版本的 Car UI 库。

如果未应用此更新会怎样?

如果未为 OEM 插件完成此页面上提供的步骤,则已解糖的应用(例如 Google Automotive Services (GAS))将无法加载 Car UI 库插件的实现,并且不会通过插件机制应用任何 OEM 自定义项。

Car UI 库的现有 RRO 自定义项不受此问题的影响,并会照常继续执行。