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.
Che 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.