附录 C:车载设备界面插件 API 的最低兼容版本

原始设备制造商 (OEM) 应尽快切换到最新版本的 car-ui-lib-plugin-apis(1.2.0 或更高版本)。理想情况下,OEM 不应推出任何使用较低版本的插件。

为何应用此更新?

之前的 Android 版本通过 Java 8+ API 脱糖支持实现了对 Java 8+ API 的支持。系统会将缺失 API 的实现编译到应用中,并重写 APK 的字节码以引用这些实现(而不是平台上的库)。

如要从车载设备界面库插件加载界面组件的 OEM 实现,需要引用由 car-ui-lib-plugin-apis 接口定义的方法。这些方法引用是在运行时从应用中对车载设备界面库插件进行的,并且应用和插件实现中的方法签名应该完全相同。

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

因此,使用内部 Google 构建系统编译的某些 GAS 应用与车载设备界面库插件不兼容。因此,我们移除了对需要脱糖的 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. 更新应用以使用最新版本的车载设备界面库。

如果未应用此更新,会出现什么情况?

如果未针对 OEM 插件完成上述步骤,诸如 Google 汽车服务 (GAS) 之类的脱糖应用将无法加载车载设备界面库插件的实现,并且不会通过插件机制应用任何 OEM 自定义设置。

车载设备界面库的现有 RRO 自定义设置不受此问题影响,会继续照常运行。