平台版本控制

本文档简要介绍了 Fuchsia 中的平台版本控制,重点介绍了平台开发者需要了解的关键概念。

API级别

Fuchsia 版本控制系统的核心在于 API 级别。这些级别表示特定时间点的 Fuchsia API Surface 的快照。API Surface 包含各种元素,包括 FIDL 接口、系统调用和库。使用 SDK 为 Fuchsia 开发组件时,您需要指定目标 API 级别。此目标 API 级别表示您的组件所需的 Fuchsia API Surface 的特定版本,并确保与支持该级别的设备兼容。与其他平台一样,Fuchsia 会定期发布新的 API 级别。

Fuchsia 设备支持一组特定的 API 级别。如果设备支持特定 API 级别,则保证与该级别关联的所有功能均可用且正常运行。反之,如果设备不支持组件的目标 API 级别,则该组件将无法在该设备上运行。Fuchsia 还可以停止支持较低的 API 级别,此过程称为弃用。借助此机制,平台可以在保持向后兼容性的同时不断演变。

如需详细了解 API 级别和 Fuchsia 版本的运作方式,请分别参阅 API 级别版本

特殊 API 级别

虽然主要侧重于稳定的编号 API 级别,但 Fuchsia 还纳入了特殊的 API 级别以供开发使用。借助这些特殊的 API 级别(NEXTHEAD),平台开发者可以在新功能和 API 更改集成到稳定版之前引入和测试这些功能和更改。不过,以特殊 API 级别为目标会带来额外的约束条件,这些约束条件不适用于常规组件开发。

如需详细了解特殊 API 级别,请参阅特殊 API 级别

平台开发者的关键注意事项

作为平台开发者,了解 API 级别如何影响开发至关重要。更改 API 接口时,应在开发过程中在 HEAD 进行这些修改。当更改准备好发布后,您应将 HEAD 更改为 NEXT。由于 NEXT API 级别代表要发布的下一个版本,因此任何更改都将纳入到下一个发布的 API 级别中。例如,如果当前发布的 API 级别为 25,则在 NEXT 中进行的任何更改都将应用于 API 级别 26。

平台组件必须继续支持 Fuchsia 目前支持的所有 API 级别。Fuchsia 支持处于“受支持”和“弃用”阶段的所有 API 级别。此要求可确保向后兼容性。sdk/version_history.json 文件列出了每个 API 级别的阶段。即使某个方法在较新 API 级别中已被移除,如果仍受支持的旧版 API 级别包含该方法,平台组件也必须继续实现该方法。绑定和工具通常有助于此过程,可确保旧版 API 级别目标平台仍可使用必要的接口。

如需详细了解 API 级别的各个阶段,请参阅阶段

即使有这些工具的帮助,维护兼容性也非常困难,平台开发者必须仔细考虑这一点。如有疑问,请记住以下几点:针对给定 API 级别构建的组件在支持该 API 级别的任何 Fuchsia 设备上都应具有相同的行为方式。

如需详细了解兼容性,请参阅兼容性