부록 C, 자동차 UI 플러그인 API에 대한 최소 호환 버전

OEM은 가능한 한 빨리 최신 버전의 car-ui-lib-plugin-apis (1.2.0 이상)로 전환할 것으로 예상됩니다. 이상적으로 OEM은 이전 버전을 사용하는 플러그인을 제공하지 않아야 합니다.

이 업데이트가 필요한 이유는 무엇입니까?

Java 8+ API는 Java 8+ API 디슈가링 지원을 통해 이전 버전의 Android에서 지원 됩니다. 누락된 API의 구현은 앱으로 컴파일되고 APK의 바이트 코드는 플랫폼의 라이브러리 대신 구현을 참조하도록 다시 작성됩니다.

자동차 UI 라이브러리 플러그인에서 UI 구성 요소의 OEM 구현을 로드하려면 car-ui-lib-plugin-apis 인터페이스에서 정의한 메서드를 참조해야 합니다. 이러한 메서드 참조는 앱과 플러그인 구현에서 메서드 서명이 동일할 것으로 예상하면서 런타임 시 앱에서 자동차 UI 라이브러리 플러그인으로 만들어집니다.

일부 빌드 시스템은 특정 최소 SDK 수준의 요구 사항으로 인해 항상 API 디슈가링을 활성화합니다. car-ui-lib-plugin-apis 인터페이스에 대한 Desugared 메서드 서명은 desugared되지 않은 OEM 플러그인 구현의 서명과 일치하지 않아 플러그인 로드에 실패할 수 있습니다.

결과적으로 내부 Google 빌드 시스템으로 컴파일된 일부 GAS 앱은 자동차 UI 라이브러리 플러그인과 호환되지 않습니다. 따라서 디슈가링이 필요한 Java 8(이상) API에 대한 모든 종속성을 제거했습니다. 이 변경은 car-ui-lib-plugin-apis 의해 정의된 인터페이스의 API에 대한 업데이트가 필요합니다.

OEM 플러그인에 필요한 단계

아래 단계에서는 API를 업데이트하는 방법을 설명합니다.

  1. car-ui-lib-plugin-apis 최신 버전을 사용하도록 플러그인 구현을 업데이트합니다. 최신 버전(1.2.0 이상)을 얻으려면 Google의 Maven Repository 를 참조하십시오.

  2. PluginFactoryOEMV4 인터페이스를 구현하도록 플러그인 구현을 업데이트하십시오. 이 변경은 구성 요소가 OEM 플러그인에 의해 구현될 때 다음 단계를 필요로 합니다. 다음의 OEM 구현을 업데이트합니다.

    1. ToolbarControllerOEMV2 를 구현하기 위한 툴바.

    2. ContentListItemOEMV2 를 확장하는 콘텐츠 목록 항목.

    3. IME 검색 결과 전달, ImeSearchInterfaceOEMV2 확장.

  3. 최신 버전의 자동차 UI 라이브러리를 사용하려면 앱을 업데이트하세요.

이 업데이트가 적용되지 않으면 어떻게 됩니까?

OEM 플러그인에 대해 위에 제공된 단계가 완료되지 않은 경우 Google Automotive Services(GAS)와 같은 디슈가링된 앱은 자동차 UI 라이브러리 플러그인의 구현을 로드하지 못하고 플러그인 메커니즘을 통해 OEM 사용자 정의가 적용되지 않습니다.

자동차 UI 라이브러리에 대한 기존 RRO 사용자 정의는 이 문제의 영향을 받지 않으며 평소와 같이 계속 수행됩니다.