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.
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 .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:Symbolleiste, um
ToolbarControllerOEMV2
zu implementieren.Inhaltslistenelemente, um
ContentListItemOEMV2
zu erweitern.Übergabe von IME-Suchergebnissen, um
ImeSearchInterfaceOEMV2
zu erweitern.
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.