原始设备制造商 (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。
更新插件实现以使用最新版
car-ui-lib-plugin-apis
。如需获取最新版本(1.2.0 或更高版本),请参阅 Google 的 Maven 制品库。更新插件实现以实现
PluginFactoryOEMV4
接口。如果某个组件是由 OEM 插件实现的,此更改需要执行以下步骤。更新以下组件的 OEM 实现:工具栏,用于实现
ToolbarControllerOEMV2
。内容列表项,用于扩展
ContentListItemOEMV2
。IME 搜索结果处理,用于扩展
ImeSearchInterfaceOEMV2
。
更新应用以使用最新版本的车载设备界面库。
如果未应用此更新,会出现什么情况?
如果未针对 OEM 插件完成上述步骤,诸如 Google 汽车服务 (GAS) 之类的脱糖应用将无法加载车载设备界面库插件的实现,并且不会通过插件机制应用任何 OEM 自定义设置。
车载设备界面库的现有 RRO 自定义设置不受此问题影响,会继续照常运行。