Oggetto interfaccia fornitore

Questo documento descrive la progettazione dell'oggetto interfaccia del fornitore (oggetto VINTF), che aggrega le informazioni pertinenti su un dispositivo e le rende disponibili tramite un'API interrogabile.

Progettazione dell'oggetto VINTF

Un oggetto VINTF raccoglie alcune delle informazioni di cui ha bisogno direttamente dal dispositivo. Altri aspetti, come i manifest, sono descritti in modo statico in XML.

Figura 1. Manifest, matrici di compatibilità e informazioni raccolte in fase di runtime.

Il design dell'oggetto VINTF fornisce quanto segue per i componenti di dispositivi e framework:

Per il dispositivo Per il framework
  • Definisce uno schema per il componente statico (il file manifest del dispositivo).
  • Aggiunge il supporto in fase di compilazione per la definizione del file manifest del dispositivo per un determinato dispositivo.
  • Definisce l'API interrogabile in fase di runtime che recupera il file manifest del dispositivo (insieme alle altre informazioni raccolte in fase di runtime) e le impacchetta nel risultato della query.
  • Definisce uno schema per il componente statico (il file manifest del framework).
  • Definisce l'API interrogabile in fase di esecuzione che recupera il file manifest del framework e lo pacchettizza nel risultato della query.

L'oggetto VINTF deve essere affidabile e fornire le stesse informazioni complete indipendentemente dal momento in cui viene richiesto (vedi Limitazioni).

Manifest e matrici

A partire da Android 8.0, un'API di runtime esegue query sui contenuti del dispositivo e invia queste informazioni al server di aggiornamento over-the-air (OTA) e ad altre parti interessate (ad esempio CTSDeviceInfo). Alcune informazioni vengono recuperate in fase di esecuzione, mentre altre sono definite in modo statico.

  • Il file manifest del dispositivo descrive il componente statico di ciò che il dispositivo può fornire al framework.
  • La matrice di compatibilità del framework descrive ciò che il framework Android si aspetta da un determinato dispositivo. La matrice è un'entità statica whose composition is determined manually during development of the next release of the Android framework.
  • Il manifest del framework descrive i servizi di alto livello che il framework può fornire al dispositivo.
  • La matrice di compatibilità dei dispositivi descrive i servizi richiesti dall'immagine del fornitore al framework. La sua composizione viene determinata manualmente durante lo sviluppo del dispositivo.

Queste due coppie di manifest e matrici devono essere riconciliate al momento dell'OTA per garantire che un dispositivo possa ricevere aggiornamenti del framework compatibili con le sue funzionalità. In generale, un manifest descrive ciò che viene fornito e una matrice di compatibilità descrive ciò che è richiesto.

Questa sezione include i seguenti dettagli su manifest e matrici:

  • Manifest definisce il manifest del dispositivo, il manifest del framework e lo schema del file manifest.
  • Matrici di compatibilità definisce lo schema per la matrice di compatibilità.
  • La pagina Lifecycle (Ciclo di vita) di FCM descrive come vengono ritirati e rimossi gli HAL HIDL e come vengono modificati i file FCM per riflettere lo stato della versione HAL.
  • Sviluppo DM descrive come i fornitori possono definire e dichiarare la versione FCM di destinazione nel manifest del dispositivo per i nuovi dispositivi o implementare nuove versioni HAL e incrementare la versione FCM di destinazione durante l'upgrade dell'immagine del fornitore per i vecchi dispositivi.
  • Regole di corrispondenza: definisce le regole per una corrispondenza riuscita tra una matrice di compatibilità e un manifest.