Von OEMs wird erwartet, dass sie so schnell wie möglich auf die neueste Version von car-ui-lib-plugin-apis
(1.2.0 oder höher) umsteigen. Im Idealfall sollten OEMs kein Plugin ausliefern, das eine ältere Version verwendet.
Warum dieses Update?
Java 8+ APIs werden für frühere Android-Versionen durch Java 8+ API-Desugaring-Unterstützung unterstützt. Implementierungen fehlender APIs werden in Apps kompiliert und der Bytecode von APKs wird umgeschrieben, 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 durch car-ui-lib-plugin-apis
Schnittstellen definiert sind. Diese Methodenverweise werden zur Laufzeit von Apps auf Car UI Library-Plugins erstellt, mit der Erwartung, dass Methodensignaturen in App- und Plugin-Implementierungen identisch sind.
Einige Build-Systeme ermöglichen aufgrund der Anforderungen einer bestimmten SDK-Mindeststufe jederzeit die Entzuckerung von APIs. Entzuckerte 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, was dazu führt, dass Plugins 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-Plugin kompatibel. Aus diesem Grund 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
Befolgen Sie diese Schritte, um Ihre API zu aktualisieren:
Aktualisieren Sie die Plugin-Implementierung, um die neueste Version von
car-ui-lib-plugin-apis
zu verwenden. Informationen zur neuesten Version (1.2.0 oder höher) finden Sie im Maven Repository von Google .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.IME-Suchergebnisübergabe, 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 auf dieser Seite bereitgestellten Schritte für ein OEM-Plugin nicht ausgeführt werden, können entzuckerte Apps wie Google Automotive Services (GAS) keine Implementierungen des Car UI Library-Plugins laden und es werden keine OEM-Anpassungen über den Plugin-Mechanismus angewendet.
Bestehende RRO-Anpassungen für die Car UI Library sind von diesem Problem nicht betroffen und funktionieren weiterhin wie gewohnt.