A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release
anziché aosp-main
per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Oggetto interfaccia del 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 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.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-27 UTC."],[],[],null,["# Vendor interface object\n\nThis document describes the design of the *vendor interface object*\n(VINTF object), which aggregates relevant information about a device and makes\nthat information available through a *queryable API*.\n\nVINTF object design\n-------------------\n\nA VINTF object gathers some of the information it needs directly from the\ndevice. Other aspects, such as the manifests, are described statically in\nXML.\n\n**Figure 1.** Manifests, compatibility matrixes, and runtime-collectible information.\n\nVINTF object design provides the following for device and framework\ncomponents:\n\n| For the Device | For the Framework |\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| - Defines a schema for the static component (the [device manifest file](/docs/core/architecture/vintf/objects#device-manifest-file)). - Adds build time support for defining the device manifest file for a given device. - Defines the [queryable API](/docs/core/architecture/vintf/objects#queryable-api) at runtime that retrieves the device manifest file (along with the other runtime-collectible information) and packages them into the query result. | - Defines a schema for the static component (the [framework manifest file](/docs/core/architecture/vintf/objects#framework-manifest-file)). - Defines the [queryable API](/docs/core/architecture/vintf/objects#queryable-api) at runtime that retrieves the framework manifest file and packages it into the query result. |\n\nThe VINTF object must be reliable and provide the same complete information\nregardless of when the object is requested (see\n[Caveats](/docs/core/architecture/vintf/resources#caveats)).\n\nManifests and matrixes\n----------------------\n\nAs of Android 8.0, a runtime API queries what is on the device and sends that\ninformation to the [Over-the-Air (OTA)](/docs/core/ota)\nupdate server and other interested parties (such as CTS\n`DeviceInfo`). Some information is retrieved at runtime and some of\nit is statically-defined.\n\n- The **device manifest** describes the static component of what the device can provide to the framework.\n- The **framework compatibility matrix** describes what the Android framework expects from a given device. The matrix is a static entity whose composition is determined manually during development of the next release of the Android framework.\n- The **framework manifest** describes high-level services the framework can provide to the device.\n- The **device compatibility matrix** describes the services the vendor image requires of the framework. Its composition is determined manually during the development of the device.\n\nThese two pairs of manifests and matrixes must be reconciled at OTA time to\nensure a device can get framework updates that are compatible with the device's\ncapabilities. In general, a *manifest* describes what is provided and a\n*compatibility matrix* describes what is required.\n\nThis section includes the following details on manifests and matrixes:\n\n- [Manifests](/docs/core/architecture/vintf/objects) defines the device manifest, framework manifest, and manifest file schema.\n- [Compatibility\n Matrixes](/docs/core/architecture/vintf/comp-matrices) defines the schema for the compatibility matrix.\n- [FCM Lifecycle](/docs/core/architecture/vintf/fcm) details how HIDL HALs are deprecated and removed and how FCM files are modifed to reflect the status of the HAL Version.\n- [DM Development](/docs/core/architecture/vintf/dm) describes how vendors can define and declare the Target FCM Version in the device manifest for new devices or implement new HAL versions and increment the Target FCM Version when upgrading the vendor image for old devices.\n- [Matching Rules](/docs/core/architecture/vintf/match-rules) defines the rules for a successful match between a compatibility matrix and a manifest."]]