Producenci OEM powinni jak najszybciej przejść na najnowszą wersję car-ui-lib-plugin-apis
(1.2.0 lub nowszą). Najlepiej, aby producenci OEM nie dostarczali żadnych wtyczek, które korzystają ze starszej wersji.
Dlaczego wprowadzamy tę zmianę?
Interfejsy API Java 8 lub nowszej są obsługiwane w starszych wersjach Androida dzięki obsłudze usuwania cukru syntaktycznego z interfejsów API Java 8 lub nowszej. Implementacje brakujących interfejsów API są kompilowane w aplikacjach, a kod bajtowy plików APK jest przepisywany tak, aby odwoływał się do implementacji zamiast do bibliotek na platformie.
Wczytywanie implementacji OEM komponentów interfejsu z wtyczki biblioteki Car UI wymaga odwoływania się do metod zdefiniowanych przez interfejsy car-ui-lib-plugin-apis
. Te odwołania do metod są tworzone w aplikacjach w czasie działania wtyczek biblioteki Car UI z założeniem, że sygnatury metod są identyczne w implementacjach aplikacji i wtyczek.
Niektóre systemy kompilacji umożliwiają odcukrzanie interfejsu API przez cały czas ze względu na wymagania dotyczące określonego minimalnego poziomu pakietu SDK. Sygnatury metod po usunięciu cukru syntaktycznego w przypadku interfejsów car-ui-lib-plugin-apis
mogą nie pasować do sygnatur w implementacji wtyczki OEM, w której nie usunięto cukru syntaktycznego. W rezultacie wtyczki nie będą się wczytywać.
W związku z tym niektóre aplikacje GAS skompilowane za pomocą wewnętrznego systemu kompilacji Google są niezgodne z wtyczką biblioteki Car UI. Dlatego usunęliśmy wszystkie zależności od interfejsów API Javy 8 (i nowszych), które wymagają desugaryzacji. Ta zmiana wymaga aktualizacji interfejsu API interfejsów zdefiniowanych przez car-ui-lib-plugin-apis
.
Wymagane działania w przypadku wtyczek OEM
Aby zaktualizować interfejs API, wykonaj te czynności:
Zaktualizuj implementację wtyczki, aby korzystać z najnowszej wersji
car-ui-lib-plugin-apis
. Aby pobrać najnowszą wersję (1.2.0 lub nowszą), zapoznaj się z repozytorium Maven Google.Zaktualizuj implementację wtyczki, aby zaimplementować interfejs
PluginFactoryOEMV4
. W przypadku komponentu zaimplementowanego przez wtyczkę OEM ta zmiana wymaga wykonania tych czynności: Zaktualizuj implementację OEM:paska narzędzi, aby wdrożyć
ToolbarControllerOEMV2
.Elementy listy treści, aby rozszerzyć
ContentListItemOEMV2
.Obsługa 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, odcukrzone aplikacje, takie jak Google Automotive Services (GAS), nie będą mogły wczytać implementacji wtyczki Car UI Library i żadne dostosowania OEM nie zostaną zastosowane za pomocą mechanizmu wtyczek.
Ten problem nie ma wpływu na istniejące dostosowania RRO w bibliotece Car UI i nadal działają one jak zwykle.