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
更新插件实现以使用最新版本的
car-ui-lib-plugin-apis
。要获取最新版本(1.2.0 或更高版本),请参阅Google 的 Maven 代码库。更新插件实现以实现
PluginFactoryOEMV4
接口。当组件由 OEM 插件实现时,此更改需要执行以下步骤。更新 OEM 实现的工具栏,以实现
ToolbarControllerOEMV2
。内容列表项,以扩展
ContentListItemOEMV2
。IME 搜索结果处理,以扩展
ImeSearchInterfaceOEMV2
。
更新应用以使用最新版本的 Car UI 库。
如果未应用此更新会怎样?
如果未为 OEM 插件完成此页面上提供的步骤,则已解糖的应用(例如 Google Automotive Services (GAS))将无法加载 Car UI 库插件的实现,并且不会通过插件机制应用任何 OEM 自定义项。
Car UI 库的现有 RRO 自定义项不受此问题的影响,并会照常继续执行。