A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release
anziché aosp-main
per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Appendice C, versione minima compatibile per l'API Car UI Plugin
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Gli OEM dovrebbero passare alla versione più recente di car-ui-lib-plugin-apis
(1.2.0 o successive) il prima possibile. Idealmente, gli OEM non dovrebbero fornire alcun plug-in
che utilizzi una versione precedente.
Perché questo aggiornamento?
Le API Java 8 e versioni successive sono supportate per le versioni precedenti di Android tramite il supporto per il desugaring delle API Java 8 e versioni successive.
Le implementazioni delle API mancanti vengono compilate nelle app e il codice bytecode degli APK viene riscritto in modo da fare riferimento alle implementazioni anziché alle librerie sulla piattaforma.
Il caricamento delle implementazioni OEM dei componenti dell'interfaccia utente da un plug-in della libreria dell'interfaccia utente dell'auto richiede il riferimento ai metodi definiti dalle interfacce car-ui-lib-plugin-apis
. Questi riferimenti ai metodi vengono eseguiti dalle app ai plug-in della libreria dell'interfaccia utente dell'auto
in fase di runtime, con la previsione che le firme dei metodi siano identiche nelle implementazioni di app e
plug-in.
Alcuni sistemi di compilazione attivano sempre la desugaring dell'API a causa dei requisiti di un livello SDK minimo specifico. Le firme dei metodi desugared per le interfacce car-ui-lib-plugin-apis
potrebbero non corrispondere a quelle di un'implementazione del plug-in OEM che non è stata desugared, il che comporta il mancato caricamento dei plug-in.
Di conseguenza, alcune app GAS compilate con il sistema di compilazione interno di Google sono
incompatibili con il plug-in della libreria dell'interfaccia utente dell'auto. Pertanto, abbiamo rimosso tutte le dipendenze dalle API Java 8 (e versioni successive) che richiedono il desugaring. Questa modifica richiede aggiornamenti all'API delle interfacce definite da car-ui-lib-plugin-apis
.
Passaggi obbligatori per i plug-in OEM
Per aggiornare l'API:
Aggiorna l'implementazione del plug-in per utilizzare la versione più recente di
car-ui-lib-plugin-apis
. Per scaricare la versione più recente (1.2.0 o successiva), consulta il Repository Maven di Google.
Aggiorna l'implementazione del plug-in per implementare l'interfaccia PluginFactoryOEMV4
. Questa modifica richiede i seguenti passaggi quando un componente viene implementato dal plug-in OEM. Aggiorna l'implementazione OEM di:
Barra degli strumenti, per implementare ToolbarControllerOEMV2
.
Elementi dell'elenco di contenuti per estendere ContentListItemOEMV2
.
Gestione dei risultati di ricerca IME, per estendere ImeSearchInterfaceOEMV2
.
Aggiorna l'app per utilizzare la versione più recente della libreria dell'interfaccia utente dell'auto.
Cosa succede se questo aggiornamento non viene applicato?
Se i passaggi forniti in questa pagina non vengono completati per un plug-in OEM, le app desugared, come Google Automotive Services (GAS), non riescono a caricare le implementazioni del plug-in Car UI Library e non vengono applicate personalizzazioni OEM tramite il meccanismo del plug-in.
Le personalizzazioni RRO esistenti per la libreria dell'interfaccia utente dell'auto non sono interessate da questo problema e continuano a funzionare normalmente.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-06-12 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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."]]