Oggetto interfaccia fornitore

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

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

Progettazione di oggetti VINTF

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

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

La progettazione di oggetti VINTF fornisce quanto segue per i componenti del dispositivo e del framework:

Per il dispositivo Per il Quadro
  • Definisce uno schema per il componente statico (il file manifest del dispositivo ).
  • Aggiunge il supporto per il tempo di compilazione per la definizione del file manifest del dispositivo per un determinato dispositivo.
  • Definisce l' API interrogabile in fase di esecuzione che recupera il file manifest del dispositivo (insieme alle altre informazioni raccolte in fase di esecuzione) e li 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 impacchetta nel risultato della query.

L'oggetto VINTF deve essere affidabile e fornire le stesse informazioni complete indipendentemente da quando l'oggetto viene richiesto (vedi Avvertenze ).

Manifesti e matrici

A partire da Android 8.0, un'API di runtime interroga cosa c'è sul dispositivo e invia tali informazioni al server di aggiornamento Over-the-Air (OTA) e ad altre parti interessate (come CTS DeviceInfo ). Alcune informazioni vengono recuperate in fase di esecuzione e alcune sono definite staticamente.

  • Il manifesto 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 la cui composizione viene determinata manualmente durante lo sviluppo della prossima versione del framework Android.
  • Il manifesto del framework descrive i servizi di alto livello che il framework può fornire al dispositivo.
  • La matrice di compatibilità del dispositivo descrive i servizi richiesti dall'immagine del fornitore del framework. La sua composizione è 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 ottenere aggiornamenti del framework compatibili con le capacità del dispositivo. 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:

  • Manifests definisce il manifesto del dispositivo, il manifesto del framework e lo schema del file manifest.
  • Matrici di compatibilità definisce lo schema per la matrice di compatibilità.
  • Il ciclo di vita di FCM descrive in dettaglio come gli HAL HIDL vengono deprecati e rimossi e come i file FCM vengono modificati per riflettere lo stato della versione HAL.
  • DM Development 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'aggiornamento dell'immagine del fornitore per i vecchi dispositivi.
  • Regole di corrispondenza definisce le regole per una corrispondenza corretta tra una matrice di compatibilità e un manifest.