Tradefed 中的 Build Info

TF 中的 Build Info 是一个广泛使用的对象,用于承载测试设置和运行的资源。从设备映像到测试 APK 的所有内容都需要存储或链接在 Build Info 中才能找到。这允许以一种统一的方式从测试访问测试资源,并将测试与获取测试资源分离开来。

版本信息属性

build 信息对象的两个主要属性是属性和文件:

  • 属性 - 可以通过 #addBuildAttribute() 添加;它们表示 build 的标签和字符串信息。属性可用于存储与 build 相关的信息。
  • 文件:可以通过 setFile() 添加;在调用生命周期内,文件将由 Build Info 进行跟踪和管理(例如,在分片期间正确处理)。这样一来,测试就不需要了解关于文件系统的任何信息,而是可以直接依赖抽象的 Build Info 对象来获取其资源。

注意:文件应以绝对路径的形式始终存储在 Files 中,而不是存储在 Attributes。属性被视为纯 java 字符串,而引用可能会在调用生命周期的部分时间失效。

多设备中的版本信息

如果设置的测试配置涉及多个设备,每个设备将存在一个 build 信息对象。这允许在设备之间请求和定位文件。

多版本中的版本信息

可能需要来自多个目标的 build。在这种情况下,每个目标将存在一个版本信息对象。这允许从任何目标请求和定位文件。

Proto 格式

Build 信息可采用 protobuf 格式序列化,以便在需要时更容易跨系统使用。