Appendice C, versione minima compatibile per l'API del plug-in dell'interfaccia utente dell'auto

Si prevede che gli OEM passino alla versione più recente di car-ui-lib-plugin-apis (1.2.0 o successiva) il prima possibile. Idealmente, gli OEM non dovrebbero fornire plug-in che utilizzano una versione precedente.

Perché questo aggiornamento?

Le API Java 8+ sono supportate per le versioni precedenti di Android tramite il supporto per la desugaring dell'API Java 8+ . Le implementazioni delle API mancanti vengono compilate nelle app e il codice byte degli APK viene riscritto per fare riferimento alle implementazioni anziché alle librerie sulla piattaforma.

Il caricamento di implementazioni OEM di componenti dell'interfaccia utente da un plug-in Car UI Library richiede il riferimento ai metodi definiti dalle interfacce car-ui-lib-plugin-apis . Questi riferimenti ai metodi vengono effettuati dalle app ai plug-in della libreria dell'interfaccia utente di Car in fase di runtime con l'aspettativa che le firme dei metodi siano identiche nelle implementazioni di app e plug-in.

Alcuni sistemi di build consentono il desugaring dell'API in ogni momento a causa dei requisiti di un livello SDK minimo specifico. Le firme dei metodi disattivati ​​per le interfacce car-ui-lib-plugin-apis potrebbero non corrispondere a quelle di un'implementazione del plug-in OEM che non è stata disattivata, con il risultato che i plug-in non vengono caricati.

Di conseguenza, alcune app GAS compilate con il sistema di build interno di Google non sono compatibili con il plug-in Car UI Library. Pertanto, abbiamo rimosso tutte le dipendenze dalle API Java 8 (e successive) che richiedono il desugaring. Questa modifica richiede aggiornamenti all'API delle interfacce definite da car-ui-lib-plugin-apis .

Passaggi richiesti per i plug-in OEM

Segui questi passaggi per aggiornare la tua API:

  1. Aggiorna l'implementazione del plugin per utilizzare la versione più recente di car-ui-lib-plugin-apis . Per ottenere la versione più recente di (1.2.0 o successiva), vedere Maven Repository di Google .

  2. Aggiorna l'implementazione del plugin 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:

    1. Barra degli strumenti, per implementare ToolbarControllerOEMV2 .

    2. Elementi dell'elenco dei contenuti, per estendere ContentListItemOEMV2 .

    3. Gestione dei risultati della ricerca IME, per estendere ImeSearchInterfaceOEMV2 .

  3. 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 dezuccherate, come Google Automotive Services (GAS), non riescono a caricare le implementazioni del plug-in Car UI Library e non viene applicata alcuna personalizzazione 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.