Anhang C, Kompatible Mindestversion für die Auto-UI-Plug-in-API

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

Warum dieses Update?

Java 8+ APIs werden für frühere Versionen von Android durch Java 8+ API Desugaring Support unterstützt . Implementierungen fehlender APIs werden in Apps kompiliert und der Bytecode von APKs wird neu geschrieben, um auf die Implementierungen statt auf die Bibliotheken auf der Plattform zu verweisen.

Das Laden von OEM-Implementierungen von UI-Komponenten aus einem Car UI Library-Plugin erfordert die Referenzierung von Methoden, die von car-ui-lib-plugin-apis Schnittstellen definiert werden. Diese Methodenreferenzen werden zur Laufzeit von Apps zu Car UI Library-Plug-ins mit der Erwartung erstellt, dass Methodensignaturen in App- und Plug-in-Implementierungen identisch sind.

Einige Build-Systeme ermöglichen aufgrund der Anforderungen eines bestimmten Mindest-SDK-Levels jederzeit das API-Desugaring. Die Methodensignaturen für car-ui-lib-plugin-apis Schnittstellen, deren Zucker entfernt wurde, stimmen möglicherweise nicht mit denen in einer OEM-Plug-in-Implementierung überein, die nicht desugarisiert wurde, was dazu führt, dass Plug-ins nicht geladen werden können.

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, die eine Entzuckerung erfordern. Diese Änderung erfordert Aktualisierungen der API der durch car-ui-lib-plugin-apis definierten Schnittstellen.

Erforderliche Schritte für OEM-Plugins

Die folgenden Schritte beschreiben, wie Sie Ihre API aktualisieren.

  1. Aktualisieren Sie die Plugin-Implementierung, um die neueste Version von car-ui-lib-plugin-apis zu verwenden. Um die neueste Version von (1.2.0 oder höher) zu erhalten, besuchen Sie Googles Maven Repository .

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

    1. Symbolleiste, um ToolbarControllerOEMV2 zu implementieren.

    2. Inhaltslistenelemente, um ContentListItemOEMV2 zu erweitern.

    3. Übergabe von IME-Suchergebnissen, um ImeSearchInterfaceOEMV2 zu erweitern.

  3. Aktualisieren Sie die App, um die neueste Version der Car UI Library zu verwenden.

Was passiert, wenn dieses Update nicht angewendet wird?

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

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