为 FFX 开发应用

FFX 分为一些责任领域,与查找和运行 fuchsia 交互程序相关的核心功能在核心程序 (ffx cli) 中,以及作为“子工具”构建的实际程序,这些程序可以使用 ffx cli 进行编译,或作为外部工具运行(使用 FHO 子工具接口)。

如需添加可通过 ffx 访问的功能,您可以编写自己的子工具并将其集成到 build 中。

开始使用子工具

如需开始为 ffx 构建简单的子工具,请参阅开发 ffx 子工具

我们还保留了子工具的参考实现,该实现可执行一些称为 ffx-echo 的基本操作,它们应始终作为如何编写子工具的规范来源。

新的子工具核对清单

如果这是大型项目的开始,您应尝试采取以下措施,确保新的子工具能够长期使用:

  • 将新的子工具标记为实验性,以建立在稳定前会发生变化的预期。
  • 对于与子工具相关的所有输出,请使用 Writer。如果预计在某个时间点会包含在 SDK 中,请确保使用具有具体可序列化类型的 MachineWriter,并且在将 --machine json 传递给 ffx 后,输出可以正常运行。
  • 使用 fho::Error 类型正确区分用户可操作的错误和子工具边界上的 bug。
  • 如果子工具位于 ffx 树中,它应该有一个明确的 OWNERS 文件,用于说明拥有它的团队以及可以对照该工具检查 CL 的人员。
  • 如果它位于 ffx 树之外,但在 fuchsia.git 代码库内,则必须引用 ffx owners file(即file:/src/developer/ffx/OWNERS)应用于 ffx 和子工具之间的 API 边界处,以便我们可以随着时间的推移主动更改该 API 边界。