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