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ą). W idealnej sytuacji OEM nie powinien dostarczać żadnych wtyczek, które korzystają ze starszej wersji.

Dlaczego wprowadzamy tę zmianę?

Interfejsy API Java 8 lub nowsze są obsługiwane w poprzednich wersjach Androida dzięki obsługi dezasugarowania interfejsów API w Java 8 lub nowszej wersji. Implementacje brakujących interfejsów API są kompilowane w aplikacji, a kod bajtowy plików APK jest przepisywany, aby odwoływał się do implementacji zamiast do bibliotek na platformie.

Ładowanie implementacji komponentów interfejsu użytkownika przez OEM z plugina biblioteki Car UI wymaga odwoływania się do metod zdefiniowanych przez interfejsy car-ui-lib-plugin-apis. Odwołania do tych metod są wykonywane w aplikacji w czasie działania w przypadku wtyczek biblioteki Car UI z założeniem, że sygnatury metod są identyczne w implementacjach aplikacji i wtyczki.

Niektóre systemy kompilacji umożliwiają desugarowanie interfejsu API przez cały czas ze względu na wymagania dotyczące określonego minimalnego poziomu pakietu SDK. Podpisy zdesaturowanych metod interfejsów car-ui-lib-plugin-apis mogą nie być zgodne z podpisami w implementacji wtyczki OEM, która nie została zdesaturowana. W efekcie 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ą Car UI Library. Dlatego usunęliśmy wszystkie zależności od interfejsów API Javy 8 (i wyższych), które wymagają desugaringu. Ta zmiana wymaga aktualizacji interfejsów API zdefiniowanych przez car-ui-lib-plugin-apis.

Wymagane działania w przypadku wtyczek OEM

Aby zaktualizować interfejs API:

  1. Zaktualizuj implementację wtyczki, aby używać najnowszej wersji car-ui-lib-plugin-apis. Aby pobrać najnowszą wersję (1.2.0 lub nowszą), odwiedź repozytorium Maven Google.

  2. Zaktualizuj implementację wtyczki, aby zaimplementować interfejs PluginFactoryOEMV4. Ta zmiana wymaga wykonania tych czynności, gdy komponent jest implementowany przez wtyczkę OEM. Zaktualizuj implementację OEM:

    1. Pasek 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 używać 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, desugarowane aplikacje, takie jak Google Automotive Services (GAS), nie będą mogły wczytywać implementacji wtyczki Car UI Library, a OEM nie będzie mógł stosować żadnych dostosowań za pomocą mechanizmu wtyczki.

Ten problem nie ma wpływu na dotychczasowe funkcje RRO w bibliotece Car UI, które nadal działają normalnie.