Załącznik C. Minimalna zgodna wersja interfejsu API wtyczki Car UI

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:

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

  2. Zaktualizuj implementację wtyczki, aby zaimplementować interfejs PluginFactoryOEMV4. W przypadku komponentu zaimplementowanego przez wtyczkę OEM ta zmiana wymaga wykonania tych czynności: Zaktualizuj implementację OEM:

    1. paska narzędzi, aby wdrożyć ToolbarControllerOEMV2.

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

    3. Obsługa 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, 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.