供应商接口对象

本文档介绍供应商接口对象(VINTF 对象)的设计,该对象用于聚合设备的相关信息并通过可查询的 API 提供该信息。

VINTF 对象设计

VINTF 对象直接从设备中收集所需的一些信息。其他信息(如清单)以 XML 格式静态描述。

图 1. 清单、兼容性矩阵和运行时可收集的信息。

VINTF 对象设计为设备和框架组件提供以下内容:

对于设备 对于框架
  • 定义静态组件(设备清单文件)的结构。
  • 添加构建时支持,以便定义给定设备的设备清单文件。
  • 在运行时定义相应可查询的 API,以用于检索设备清单文件(以及其他可在运行时收集的信息)并将其打包到查询结果中。

无论何时请求,VINTF 对象都必须稳定可靠且能提供相同的完整信息(请见注意事项)。

清单和矩阵

Android O 在运行时需要使用 API 来查询设备上的内容,并将该信息发送到无线下载 (OTA) 更新服务器以及其他相关方(如 CTS DeviceInfo)。某些信息在运行时进行检索,其中有一些是静态定义的信息。

  • 设备清单描述了设备可以为框架提供的静态组件。
  • 框架兼容性矩阵描述了 Android 框架从给定设备中期待获取的内容。矩阵是一个静态实体,其组成是在开发下一个版本的 Android 框架期间手动确定。
  • 框架清单描述了框架可以为设备提供的高级服务。
  • 设备兼容性矩阵描述了供应商映像需要框架提供的服务,其组成是在设备开发期间手动确定。

这两对清单和矩阵必须在 OTA 时进行调整,以确保设备可以获取与设备功能兼容的框架更新。一般来说,清单描述了提供的内容,兼容性矩阵描述了需要的内容。

VINTF 对象数据定义了清单的结构,兼容性矩阵定义了兼容性矩阵的结构,匹配规则定义了兼容性矩阵与清单之间成功匹配的规则。