Приложение C, минимальная совместимая версия для API плагина пользовательского интерфейса автомобиля.

Ожидается, что производители автомобилей как можно скорее перейдут на новейшую версию 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:

  1. Обновите реализацию плагина, чтобы использовать последнюю версию car-ui-lib-plugin-apis . Чтобы получить последнюю версию (1.2.0 или выше), см. репозиторий Maven от Google .

  2. Обновите реализацию плагина, чтобы она реализовывала интерфейс PluginFactoryOEMV4 . Это изменение требует выполнения следующих шагов, если компонент реализован плагином OEM: Обновите реализацию OEM для:

    1. Панель инструментов, для реализации ToolbarControllerOEMV2 .

    2. Элементы списка содержимого, расширяющие функциональность ContentListItemOEMV2 .

    3. Обработка результатов поиска IME для расширения функционала ImeSearchInterfaceOEMV2 .

  3. Обновите приложение, чтобы использовать последнюю версию библиотеки Car UI.

Что произойдет, если это обновление не будет применено?

Если для плагина OEM не выполнить шаги, описанные на этой странице, приложения с упрощенной архитектурой, такие как Google Automotive Services (GAS), не смогут загрузить реализации плагина Car UI Library, и никакие настройки OEM не будут применены через механизм плагина.

Существующие настройки RRO для библиотеки Car UI не затрагиваются этой проблемой и продолжают работать в обычном режиме.