부록 C. 자동차 UI Plugin API를 위한 최소 호환 버전

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

업데이트가 필요한 이유는 무엇인가요?

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

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

일부 빌드 시스템은 특정 최소 SDK 수준의 요구사항으로 인해 항상 API 디슈가링을 사용 설정합니다. car-ui-lib-plugin-apis 인터페이스의 디슈가링된 메서드 서명은 디슈가링되지 않은 OEM 플러그인 구현의 서명과 일치하지 않을 수 있으며 이 경우 플러그인이 로드되지 않습니다.

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

OEM 플러그인의 필수 단계

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

  1. 최신 버전의 car-ui-lib-plugin-apis를 사용하도록 플러그인 구현을 업데이트합니다. 최신 버전(1.2.0 이상)을 다운로드하려면 Google Maven 저장소를 참고하세요.

  2. PluginFactoryOEMV4 인터페이스를 구현하도록 플러그인 구현을 업데이트합니다. 이 변경사항을 적용하려면 OEM 플러그인에서 구성요소를 구현할 때 다음 단계가 필요합니다. 다음 OEM 구현을 업데이트합니다.

    1. 툴바: ToolbarControllerOEMV2를 구현합니다.

    2. 콘텐츠 목록 항목: ContentListItemOEMV2를 확장합니다.

    3. IME 검색결과 처리: ImeSearchInterfaceOEMV2를 확장합니다.

  3. 최신 버전의 자동차 UI 라이브러리를 사용하도록 앱을 업데이트합니다.

이 업데이트가 적용되지 않으면 어떻게 되나요?

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

자동차 UI 라이브러리의 기존 RRO 맞춤설정은 이 문제의 영향을 받지 않으며 평소처럼 계속 작동합니다.