Oczekuje się, że producenci OEM jak najszybciej przejdą na najnowszą wersję car-ui-lib-plugin-apis
(1.2.0 lub nowszą). W idealnym przypadku producenci OEM nie powinni dostarczać żadnych wtyczek korzystających ze starszej wersji.
Dlaczego ta aktualizacja?
Interfejsy API języka Java 8+ są obsługiwane w przypadku poprzednich wersji systemu Android dzięki obsłudze odcukrzania interfejsu API języka Java 8+ . Implementacje brakujących interfejsów API są kompilowane w aplikacje, a kod bajtowy plików APK jest przepisywany tak, aby odwoływał się do implementacji, a nie do bibliotek na platformie.
Ładowanie implementacji OEM komponentów interfejsu użytkownika z wtyczki Car UI Library wymaga odniesienia do metod zdefiniowanych przez interfejsy car-ui-lib-plugin-apis
. Te odniesienia do metod są tworzone z aplikacji do wtyczek biblioteki Car UI w czasie wykonywania, przy założeniu, że sygnatury metod będą identyczne w implementacjach aplikacji i wtyczek.
Niektóre systemy kompilacji umożliwiają przez cały czas usuwanie cukru API ze względu na wymagania określonego minimalnego poziomu pakietu SDK. Podpisy metod Desugared dla interfejsów car-ui-lib-plugin-apis
mogą nie odpowiadać sygnaturom w implementacji wtyczki OEM, która nie została usunięta, co powoduje, że wtyczki nie ładują się.
W rezultacie niektóre aplikacje GAS skompilowane przy użyciu wewnętrznego systemu kompilacji Google są niezgodne z wtyczką Car UI Library. Dlatego usunęliśmy wszystkie zależności od interfejsów API Java 8 (i nowszych), które wymagają usuwania cukru. Ta zmiana wymaga aktualizacji API interfejsów zdefiniowanych przez car-ui-lib-plugin-apis
.
Wymagane kroki dla wtyczek OEM
Wykonaj poniższe kroki, aby zaktualizować interfejs API:
Zaktualizuj implementację wtyczki, aby używać najnowszej wersji
car-ui-lib-plugin-apis
. Aby uzyskać najnowszą wersję (1.2.0 lub nowszą), zobacz Repozytorium Maven firmy Google .Zaktualizuj implementację wtyczki, aby zaimplementować interfejs
PluginFactoryOEMV4
. Ta zmiana wymaga wykonania następujących kroków, gdy komponent jest implementowany przez wtyczkę OEM. Zaktualizuj implementację OEM:Toolbar, aby zaimplementować
ToolbarControllerOEMV2
.Elementy listy treści, aby rozszerzyć
ContentListItemOEMV2
.Przekazywanie wyników wyszukiwania IME, aby rozszerzyć
ImeSearchInterfaceOEMV2
.
Zaktualizuj aplikację, aby korzystać z najnowszej wersji biblioteki Car UI.
Co się stanie, jeśli ta aktualizacja nie zostanie zastosowana?
Jeśli kroki podane na tej stronie nie zostaną wykonane w przypadku wtyczki OEM, aplikacje pozbawione cukru, takie jak Google Automotive Services (GAS), nie będą mogły załadować implementacji wtyczki Car UI Library, a za pośrednictwem mechanizmu wtyczki nie zostaną zastosowane żadne dostosowania OEM.
Ten problem nie ma wpływu na istniejące dostosowania RRO dla biblioteki Car UI i nadal działają normalnie.