本文將概略介紹 Fuchsia 中的平台版本控制,並著重於平台開發人員需要瞭解的重要概念。
API 等級
Fuchsia 的版本控制系統核心在於API 級別。這些層級代表 Fuchsia API 介面在特定時間點的快照。API 途徑包含各種元素,包括 FIDL 介面、系統呼叫和程式庫。使用 SDK 開發 Fuchsia 元件時,您需要指定目標 API 級別。這個目標 API 級別代表元件所需的 Fuchsia API 途徑的特定版本,可確保與支援該級別的裝置相容。和其他平台一樣,Fuchsia 會定期發布新的 API 級別。
Fuchsia 裝置支援特定的 API 級別。如果裝置支援特定 API 級別,則可確保與該級別相關聯的所有功能皆可使用。反之,如果裝置不支援元件的目標 API 級別,該元件就無法在該裝置上執行。Fuchsia 也可以停止支援舊版 API 級別,這個程序稱為「退役」。這個機制可讓平台在維持向後相容性的同時持續演進。
如要進一步瞭解 API 級別和 Fuchsia 版本的運作方式,請分別參閱「API 級別」和「版本」。
特殊 API 級別
雖然主要著重於穩定且編號的 API 級別,Fuchsia 也整合了特殊的 API 級別,以利開發。這些特殊的 API 級別 (NEXT
和 HEAD
) 可讓平台開發人員在將新功能和 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 裝置上應會以相同方式運作。
如要進一步瞭解相容性,請參閱「相容性」。