Oggetto interfaccia fornitore

Questo documento descrive la progettazione dell'oggetto dell'interfaccia del 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 fase di esecuzione

La progettazione degli 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 in fase di compilazione per definire il 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 raccogliebili in fase di esecuzione) e le inserisce 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 inserisce 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 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 manifest del dispositivo descrive la componente statica di ciò che il dispositivo può fornire al framework.
  • La matrice di compatibilità del framework descrive cosa si aspetta il framework Android da un determinato dispositivo. La matrice è un'entità statica la cui composizione viene determinata manualmente durante lo sviluppo della prossima release 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 che l'immagine del fornitore richiede al framework. La sua composizione viene determinata manualmente durante lo sviluppo del dispositivo.

Queste due coppie di manifesti e matrici devono essere riconciliate al momento dell'OTA per garantire che un dispositivo possa ottenere aggiornamenti del framework compatibili con le funzionalità 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 manifesti e matrici:

  • Manifest definisce il manifesto del dispositivo, il manifesto del framework e lo schema del file manifesto.
  • 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.
  • Lo 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'aggiornamento 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.