供应商接口对象

本文档介绍了供应商接口对象 (VINTF 对象) 的设计,该对象汇总了关于设备的各种相关信息,并通过可查询的 API 提供这些信息。

VINTF 对象设计

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

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

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

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

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

清单和矩阵

从 Android 8.0 开始,运行时 API 会查询设备上的内容,并将该信息发送到无线下载 (OTA) 更新服务器和其他相关方(例如 CTS DeviceInfo)。某些信息在运行时检索,而另一些信息是静态定义的。

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

这两对清单和矩阵必须在 OTA 时进行协调,以确保设备可以获得与设备功能兼容的框架更新。通常,清单描述了提供的内容,而兼容性矩阵描述了所需的内容。

本节包含有关清单和矩阵的以下详细信息:

  • 清单定义了设备清单、框架清单和清单文件架构。
  • 兼容性矩阵定义了兼容性矩阵的架构。
  • FCM 生命周期详细介绍了 HIDL HAL 如何弃用和移除,以及如何修改 FCM 文件以反映 HAL 版本的状态。
  • DM 开发 描述了供应商如何在新设备的设备清单中定义和声明目标 FCM 版本,或者在升级旧设备的供应商镜像时如何实现新的 HAL 版本并增加目标 FCM 版本。
  • 匹配规则 定义了兼容性矩阵和清单之间成功匹配的规则。