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

Ожидается, что 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 из-за требований определённого минимального уровня 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 Library.

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

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

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