确定标志用法和类型

Google 使用功能发布标志来确保代码分支的稳定性。对 AOSP 做出某些类型的贡献也需要使用这些标志。在实现功能发布标记之前,请确定您的更改是否需要标志。如果需要标志,您应确定要使用的标志类型。

确定标志用法

如需确定何时使用功能发布标志,请遵循以下准则:

  • 如果您进行的更改可能会导致 AOSP 代码库不稳定,例如添加新功能或修正特别复杂的 bug,请使用功能发布标志。

  • 相反,如果您进行的代码更改不太可能导致代码库不稳定(例如修改注释),则无需使用功能发布标志。

确定标志类型

标志分为两种类型:aconfig 标志和构建标志

aconfig 标志

aconfig 标志用于在测试和发布过程中将未发布代码的执行与已发布代码的执行分开。aconfig 标志可以是读写或只读:

  • 读写 aconfig 标志是可以在运行时启用(设置为 true)或停用(设置为 false)的布尔变量。使用读写标志可在不影响 main 分支稳定性的情况下测试和发布更改。

  • 只读 aconfig 标志是布尔常量,您无法在运行时更改。对于稳定且已准备好发布的代码,您可以将读写 aconfig 标志转换为只读 aconfig 标志。

    此外,在使用只读标志时,系统可能会从 build 中排除未执行的代码,具体取决于您使用的编译器。因此,您可以使用只读标志来隐藏尚未准备好纳入版本的任何代码。

构建标志

构建标志是构建时间常量(字符串),您无法在运行时进行更改。在无法使用 aconfig 标志的情况下,请使用这些标志,例如:

  • 您有一段想要添加到 build 中的预编译或预构建代码。
  • 您想要更改构建系统本身。
  • 您想要在依赖项周围添加标志以管理代码大小。