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 Plug-ins liefern, die eine ältere Version verwenden.
Warum diese Änderung?
APIs von Java 8 und höher werden für frühere Android-Versionen durch die Unterstützung der Desugaring-API von Java 8 und höher unterstützt. Implementierungen fehlender APIs werden in Apps kompiliert und der Bytecode von APKs wird neu geschrieben, sodass auf die Implementierungen statt auf die Bibliotheken auf der Plattform verwiesen wird.
Wenn Sie OEM-Implementierungen von UI-Komponenten aus einem Auto-UI-Mediathek-Plug-in laden möchten, müssen Sie auf Methoden verweisen, die von car-ui-lib-plugin-apis
-Schnittstellen definiert sind. Diese Methodenreferenzen werden bei der Laufzeit von Apps auf Auto-UI-Mediathek-Plug-ins verweisen. Dabei wird davon ausgegangen, dass die Methodensignaturen in App- und Plug-in-Implementierungen identisch sind.
Bei einigen Build-Systemen ist die Desugaring der API aufgrund der Anforderungen eines bestimmten SDK-Mindestlevels immer aktiviert. Desugarisierte Methodensignaturen für car-ui-lib-plugin-apis
-Schnittstellen stimmen möglicherweise nicht mit denen in einer nicht desugarisierten OEM-Plug-in-Implementierung überein, was dazu führt, dass Plug-ins nicht geladen werden.
Daher sind einige GAS-Apps, die mit dem internen Google-Build-System kompiliert wurden, nicht mit dem Auto-UI-Mediathek-Plug-in kompatibel. Daher haben wir alle Abhängigkeiten von Java 8- und höher-APIs entfernt, die eine Desugaring erfordern. Diese Änderung erfordert Updates an der API der von car-ui-lib-plugin-apis
definierten Schnittstellen.
Erforderliche Schritte für OEM-Plug-ins
So aktualisieren Sie Ihre API:
Aktualisieren Sie die Plug-in-Implementierung, um die neueste Version von
car-ui-lib-plugin-apis
zu verwenden. Die neueste Version (1.2.0 oder höher) finden Sie im Maven-Repository von Google.Aktualisieren Sie die Plug-in-Implementierung, um die
PluginFactoryOEMV4
-Schnittstelle zu implementieren. Für diese Änderung sind die folgenden Schritte erforderlich, wenn eine Komponente vom OEM-Plug-in implementiert wird. Aktualisieren Sie die OEM-Implementierung von:Symbolleiste zum Implementieren von
ToolbarControllerOEMV2
.Listenelemente für Inhalte, um
ContentListItemOEMV2
zu erweitern.Umgang mit IME-Suchergebnissen, um
ImeSearchInterfaceOEMV2
zu erweitern
Aktualisieren Sie die App, damit die neueste Version der Auto-UI-Mediathek 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 in desugarten Apps wie den Google Automotive Services (GAS) keine Implementierungen des Plug-ins „Car UI Library“ geladen werden und es werden keine OEM-Anpassungen über den Plug-in-Mechanismus angewendet.
Vorhandene RRO-Anpassungen für die Auto-UI-Mediathek sind von diesem Problem nicht betroffen und funktionieren wie gewohnt.