2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
부록 C. 자동차 UI Plugin 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
인터페이스의 디슈가링된 메서드 서명은 디슈가링되지 않은 OEM 플러그인 구현의 서명과 일치하지 않을 수 있으며 이 경우 플러그인이 로드되지 않습니다.
결과적으로 내부 Google 빌드 시스템으로 컴파일된 일부 GAS 앱은 자동차 UI 라이브러리 플러그인과 호환되지 않습니다. 따라서 디슈가링이 필요한 자바 8 이상 API의 모든 종속 항목을 삭제했습니다. 이 변경사항을 적용하려면 car-ui-lib-plugin-apis
에서 정의된 인터페이스의 API를 업데이트해야 합니다.
OEM 플러그인의 필수 단계
다음 단계를 따라 API를 업데이트하세요.
최신 버전의 car-ui-lib-plugin-apis
를 사용하도록 플러그인 구현을 업데이트합니다. 최신 버전(1.2.0 이상)을 다운로드하려면 Google Maven 저장소를 참고하세요.
PluginFactoryOEMV4
인터페이스를 구현하도록 플러그인 구현을 업데이트합니다. 이 변경사항을 적용하려면 OEM 플러그인에서 구성요소를 구현할 때 다음 단계가 필요합니다. 다음 OEM 구현을 업데이트합니다.
툴바: ToolbarControllerOEMV2
를 구현합니다.
콘텐츠 목록 항목: ContentListItemOEMV2
를 확장합니다.
IME 검색결과 처리: ImeSearchInterfaceOEMV2
를 확장합니다.
최신 버전의 자동차 UI 라이브러리를 사용하도록 앱을 업데이트합니다.
이 업데이트가 적용되지 않으면 어떻게 되나요?
이 페이지에 제공된 OEM 플러그인에 관한 단계를 완료하지 않으면 Google Automotive 서비스(GAS)와 같은 디슈가링된 앱이 자동차 UI 라이브러리 플러그인 구현을 로드하지 못하고 OEM 맞춤설정이 플러그인 메커니즘을 통해 적용되지 않습니다.
자동차 UI 라이브러리의 기존 RRO 맞춤설정은 이 문제의 영향을 받지 않으며 평소처럼 계속 작동합니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-06-12(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-06-12(UTC)"],[],[],null,["# Appendix C, minimum compatible version for Car UI Plugin API\n\nOEMs are expected to switch to the newest version of `car-ui-lib-plugin-apis`\n(1.2.0 or higher) as soon as possible. Ideally, OEMs shouldn't ship any plugin\nthat uses an older version.\n\nWhy this update?\n----------------\n\n[Java 8+](https://developer.android.com/studio/write/java8-support-table) APIs\nare supported for previous versions of Android through [Java 8+ API desugaring\nsupport](https://developer.android.com/studio/write/java8-support#library-desugaring).\nImplementations of missing APIs are compiled into apps and the byte code of APKs\nare rewritten to reference the implementations instead of the libraries on the\nplatform.\n\nLoading OEM implementations of UI components from a Car UI Library plugin\nrequires the referencing of methods defined by `car-ui-lib-plugin-apis`\ninterfaces. These method references are made from apps to Car UI Library plugins\nat runtime with the expectation that method signatures are identical in app and\nplugin implementations.\n\nSome build systems enable API desugaring at all times due to requirements of a\nspecific minimum SDK level. Desugared method signatures for\n`car-ui-lib-plugin-apis` interfaces may not match those in an OEM plugin\nimplementation that has not been desugared, which results in plugins failing to\nload.\n\nAs a result, some GAS apps compiled with the internal Google build system are\nincompatible with the Car UI Library plugin. Therefore, we've removed all\ndependencies on Java 8 (and higher) APIs that require desugaring. This change\nrequires updates to the API of the interfaces defined by\n`car-ui-lib-plugin-apis`.\n\nRequired steps for OEM plugins\n------------------------------\n\nFollow these steps to update your API:\n\n1. Update the plugin implementation to use the latest version of\n `car-ui-lib-plugin-apis`. To get the latest version of (1.2.0 or higher),\n see [Google's Maven\n Repository](https://maven.google.com/web/index.html#com.android.car.ui:car-ui-lib-plugin-apis).\n\n2. Update the plugin implementation to implement the `PluginFactoryOEMV4`\n interface. This change requires the following steps when a component is\n implemented by the OEM plugin. Update the OEM implementation of:\n\n 1. Toolbar, to implement `ToolbarControllerOEMV2`.\n\n 2. Content list items, to extend `ContentListItemOEMV2`.\n\n 3. IME search results handing, to extend `ImeSearchInterfaceOEMV2`.\n\n3. Update the app to use the latest version of the Car UI Library.\n\nWhat happens if this update is not applied?\n-------------------------------------------\n\nIf the steps provided on this page aren't completed for an OEM plugin, desugared\napps, such as the Google Automotive Services (GAS), fail to load implementations\nof the Car UI Library plugin and no OEM customizations are applied through the\nplugin mechanism.\n\nExisting RRO customizations for the Car UI Library are not affected by this\nissue and continue to perform as usual."]]