Anhang C: Mindestkompatible Version für die Car UI Plugin API

OEMs sollten so schnell wie möglich auf die neueste Version von car-ui-lib-plugin-apis (1.2.0 oder höher) umstellen. Idealerweise sollten OEMs keine Plugins ausliefern, die eine ältere Version verwenden.

Warum diese Aktualisierung?

Java 8+-APIs werden für frühere Android-Versionen durch die Unterstützung für die Entzuckerung von Java 8+-APIs unterstützt. Implementierungen fehlender APIs werden in Apps kompiliert und der Bytecode von APKs wird so umgeschrieben, dass auf die Implementierungen anstelle der Bibliotheken auf der Plattform verwiesen wird.

Das Laden von OEM-Implementierungen von UI-Komponenten aus einem Auto-UI-Bibliothek-Plug-in erfordert den Verweis auf Methoden, die durch car-ui-lib-plugin-apis-Schnittstellen definiert sind. Diese Methodenreferenzen werden zur Laufzeit von Apps zu Auto-UI-Bibliothek-Plug-ins erstellt. Dabei wird davon ausgegangen, dass die Methodensignaturen in der App und in den Plug-in-Implementierungen identisch sind.

Bei einigen Build-Systemen ist das Desugaring von APIs aufgrund der Anforderungen eines bestimmten Mindest-SDK-Levels immer aktiviert. Die entzuckerten Methodensignaturen für car-ui-lib-plugin-apis-Schnittstellen stimmen möglicherweise nicht mit denen in einer OEM-Plugin-Implementierung überein, die nicht entzuckert wurde. Dies führt dazu, dass Plugins nicht geladen werden.

Daher sind einige GAS-Apps, die mit dem internen Google-Build-System kompiliert wurden, nicht mit dem Car UI Library-Plug-in kompatibel. Daher haben wir alle Abhängigkeiten von Java 8-APIs (und höher) entfernt, für die Desugaring erforderlich ist. Diese Änderung erfordert Aktualisierungen der API der von car-ui-lib-plugin-apis definierten Schnittstellen.

Erforderliche Schritte für OEM-Plug-ins

So aktualisieren Sie Ihre API:

  1. Aktualisieren Sie die Plug-in-Implementierung, damit die neueste Version von car-ui-lib-plugin-apis verwendet wird. Die aktuelle Version (1.2.0 oder höher) finden Sie im Maven-Repository von Google.

  2. Aktualisieren Sie die Plug-in-Implementierung, um die PluginFactoryOEMV4-Schnittstelle zu implementieren. Diese Änderung erfordert die folgenden Schritte, wenn eine Komponente vom OEM-Plug-in implementiert wird. Aktualisieren Sie die OEM-Implementierung von:

    1. Symbolleiste, um ToolbarControllerOEMV2 zu implementieren.

    2. Elemente der Inhaltsliste, um ContentListItemOEMV2 zu erweitern.

    3. Verarbeitung von IME-Suchergebnissen zur Erweiterung von ImeSearchInterfaceOEMV2.

  3. Aktualisieren Sie die App, damit die neueste Version der Car UI Library verwendet wird.

Was passiert, wenn dieses Update nicht angewendet wird?

Wenn die auf dieser Seite beschriebenen Schritte für ein OEM-Plug-in nicht ausgeführt werden, können entzuckerte Apps wie die Google Automotive Services (GAS) keine Implementierungen des Car UI Library-Plug-ins laden und es werden keine OEM-Anpassungen über den Plug-in-Mechanismus angewendet.

Bestehende RRO-Anpassungen für die Auto-UI-Bibliothek sind von diesem Problem nicht betroffen und funktionieren weiterhin wie gewohnt.