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