Dodatek C, minimalna wersja kompatybilna z API wtyczki Car UI

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:

  1. 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 .

  2. 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:

    1. Toolbar, aby zaimplementować ToolbarControllerOEMV2 .

    2. Elementy listy treści, aby rozszerzyć ContentListItemOEMV2 .

    3. Przekazywanie wyników wyszukiwania IME, aby rozszerzyć ImeSearchInterfaceOEMV2 .

  3. 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.