Ожидается, что OEM-производители перейдут на новейшую версию car-ui-lib-plugin-apis
(1.2.0 или выше) как можно скорее. В идеале OEM-производители не должны поставлять плагины, использующие более старую версию.
Почему это обновление?
API Java 8+ поддерживаются для предыдущих версий Android через поддержку десахаринга API Java 8+ . Реализации отсутствующих API компилируются в приложения, а байт-код APK переписывается для ссылки на реализации вместо библиотек на платформе.
Загрузка OEM-реализаций компонентов пользовательского интерфейса из плагина Car UI Library требует ссылок на методы, определенные интерфейсами car-ui-lib-plugin-apis
. Эти ссылки на методы делаются из приложений в плагины Car UI Library во время выполнения с ожиданием, что сигнатуры методов идентичны в реализациях приложений и плагинов.
Некоторые системы сборки всегда включают API desugaring из-за требований определенного минимального уровня SDK. Сигнатуры методов desugaring для интерфейсов car-ui-lib-plugin-apis
могут не совпадать с таковыми в реализации OEM-плагина, который не был desugaring, что приводит к тому, что плагины не загружаются.
В результате некоторые приложения GAS, скомпилированные с помощью внутренней системы сборки Google, несовместимы с плагином Car UI Library. Поэтому мы удалили все зависимости от API Java 8 (и выше), требующие десахаринга. Это изменение требует обновления API интерфейсов, определенных car-ui-lib-plugin-apis
.
Необходимые шаги для OEM-плагинов
Чтобы обновить API, выполните следующие действия:
Обновите реализацию плагина, чтобы использовать последнюю версию
car-ui-lib-plugin-apis
. Чтобы получить последнюю версию (1.2.0 или выше), см. репозиторий Maven от Google .Обновите реализацию плагина для реализации интерфейса
PluginFactoryOEMV4
. Это изменение требует следующих шагов, когда компонент реализуется плагином OEM. Обновите реализацию OEM:Панель инструментов для реализации
ToolbarControllerOEMV2
.Элементы списка содержимого для расширения
ContentListItemOEMV2
.Обработка результатов поиска IME, расширение
ImeSearchInterfaceOEMV2
.
Обновите приложение, чтобы использовать последнюю версию Car UI Library.
Что произойдет, если это обновление не применить?
Если шаги, указанные на этой странице, не выполнены для плагина OEM, то приложения с улучшенной функциональностью, такие как Google Automotive Services (GAS), не смогут загрузить реализации плагина Car UI Library, и никакие настройки OEM не будут применены через механизм плагина.
Существующие настройки RRO для библиотеки пользовательского интерфейса автомобиля не затронуты этой проблемой и продолжают работать в обычном режиме.