Приложение 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 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, выполните следующие действия:

  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 для библиотеки пользовательского интерфейса автомобиля не затронуты этой проблемой и продолжают работать в обычном режиме.