Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
Anbieteroberflächenobjekt
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
In diesem Dokument wird das Design des Vendor Interface Object (VINTF-Objekt) beschrieben, das relevante Informationen zu einem Gerät aggregiert und diese Informationen über eine abfragbare API verfügbar macht.
VINTF-Objektdesign
Ein VINTF-Objekt erhebt einige der erforderlichen Informationen direkt vom Gerät. Andere Aspekte wie die Manifeste werden statisch in XML beschrieben.
Abbildung 1: Manifeste, Kompatibilitätsmatrizen und Informationen, die zur Laufzeit erfasst werden.
Das VINTF-Objektdesign bietet Folgendes für Geräte- und Framework-Komponenten:
Für das Gerät |
Für das Framework |
- Hier wird ein Schema für die statische Komponente (die Gerätemanifestdatei) definiert.
- Bietet Unterstützung bei der Buildzeit zum Definieren der Gerätemanifestdatei für ein bestimmtes Gerät.
- Definiert die abfragbare API zur Laufzeit, die die Gerätemanifestdatei zusammen mit den anderen zur Laufzeit erfassten Informationen abruft und in das Abfrageergebnis einfügt.
|
- Hier wird ein Schema für die statische Komponente (die Manifestdatei des Frameworks) definiert.
- Definiert die abfragbare API zur Laufzeit, die die Manifestdatei des Frameworks abruft und in das Abfrageergebnis einfügt.
|
Das VINTF-Objekt muss zuverlässig sein und unabhängig davon, wann das Objekt angefordert wird, dieselben vollständigen Informationen enthalten (siehe Hinweise).
Manifeste und Matrizen
Ab Android 8.0 wird über eine Runtime-API abgefragt, was sich auf dem Gerät befindet, und diese Informationen werden an den Over-the-Air (OTA)-Update-Server und andere interessierte Parteien (z. B. CTSDeviceInfo
) gesendet. Einige Informationen werden zur Laufzeit abgerufen, andere sind statisch definiert.
- Das Gerätemanifest beschreibt die statische Komponente der Informationen, die das Gerät dem Framework zur Verfügung stellen kann.
- In der Kompatibilitätsmatrix des Frameworks wird beschrieben, was das Android-Framework von einem bestimmten Gerät erwartet. Die Matrix ist eine statische Entität, deren Zusammensetzung während der Entwicklung der nächsten Version des Android-Frameworks manuell festgelegt wird.
- Das Framework-Manifest beschreibt allgemeine Dienste, die das Framework dem Gerät zur Verfügung stellen kann.
- In der Gerätekompatibilitätsmatrix werden die Dienste beschrieben, die das Anbieter-Image vom Framework benötigt. Die Zusammensetzung wird während der Entwicklung des Geräts manuell bestimmt.
Diese beiden Manifest- und Matrixpaare müssen bei der OTA-Aktualisierung abgeglichen werden, damit ein Gerät Framework-Updates erhalten kann, die mit den Funktionen des Geräts kompatibel sind. Im Allgemeinen wird in einem Manifest beschrieben, was bereitgestellt wird, und in einer Kompatibilitätsmatrix, was erforderlich ist.
Dieser Abschnitt enthält die folgenden Details zu Manifesten und Matrizen:
- Unter Manifests werden das Gerätemanifest, das Framework-Manifest und das Manifestdateischema definiert.
- Unter Kompatibilitätsmatrizen wird das Schema für die Kompatibilitätsmatrix definiert.
- Im FCM-Lebenszyklus wird beschrieben, wie HIDL HALs eingestellt und entfernt werden und wie FCM-Dateien so geändert werden, dass der Status der HAL-Version widergespiegelt wird.
- In DM Development wird beschrieben, wie Anbieter die Ziel-FCM-Version im Gerätemanifest für neue Geräte definieren und deklarieren oder neue HAL-Versionen implementieren und die Ziel-FCM-Version erhöhen können, wenn sie das Anbieter-Image für alte Geräte aktualisieren.
- Unter Abgleichsregeln werden die Regeln für einen erfolgreichen Abgleich zwischen einer Kompatibilitätsmatrix und einem Manifest definiert.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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."]]