工作階段是指在啟動時啟動的首個產品專屬元件。工作階段元件負責建構產品的使用者體驗。
啟動至工作階段
如要啟動工作階段,請按照下列步驟操作:
- 如要讓工作階段在啟動時執行,您必須使用工作階段的網址設定產品版本。找出工作階段的元件網址: - fuchsia-pkg://fuchsia.com/pkg-name#meta/your_session.cm- 請將下列內容替換為: - pkg-name:套件名稱
- your_session.cm:工作階段名稱,包括 .cm副檔名。
 - 詳情請參閱「 - fuchsia-pkg」和「套件名稱」。
- 更新 - //local/BUILD.gn以加入- product_assembly_overrides。- import("//build/assembly/developer_overrides.gni") assembly_developer_overrides("custom_session") { base_packages = [ "//path/to/your/session" ] platform = { session = { enabled = true } } product = { session = { url = "fuchsia-pkg://fuchsia.com/pkg-name#meta/your_session.cm" } } }
- 執行下列指令,在基礎映像檔中加入 - your_session,並設定您在- //local:custom_session中定義的設定值。- fx set product.board --assembly-override=//local:custom_session- fx list-products和- fx list-boards會顯示可在- fx set指令中使用的產品和電路板清單。如要進一步瞭解- fx指令,請參閱 fx 說明文件。
- 重新建構並重新鋪設裝置。 - fx build fx ota- 這會導致 - session_manager啟動並啟動工作階段。
如需建立工作階段元件的完整說明,請參閱「撰寫 Hello World 工作階段」。
透過指令列啟動工作階段
在某些情況下,您可能不希望工作階段在啟動時啟動,但仍希望能夠透過指令列啟動工作階段。session_manager 需要處於執行狀態才能啟動工作階段。session_manager 目標可確保 session_manager 本身啟動,但不會自動啟動工作階段。
如要透過指令列啟動工作階段,請按照下列步驟操作:
- 使用 - autolaunch將- //local/BUILD.gn更新為- product_assembly_overrides。- import("//build/assembly/developer_overrides.gni") assembly_developer_overrides("custom_session") { base_packages = [ "//path/to/your/session" ] platform = { session = { enabled = true autolaunch = false } } product = { session = { url = "fuchsia-pkg://fuchsia.com/pkg-name#meta/your_session.cm" } } }
- 除了工作階段目標外,還要在基礎依附元件集中新增 - session_manager目標。- fx set product.board --assembly-override=//local:custom_session- fx list-products和- fx list-boards會顯示可在- fx set指令中使用的產品和電路板清單。如要進一步瞭解- fx指令,請參閱 fx 說明文件。
- 執行下列指令,重新建構並重新鋪設裝置: - fx build fx ota- 這會導致 - session_manager在未啟動工作階段的情況下啟動。
- 您現在可以透過指令列啟動工作階段。 - 執行下列指令啟動工作階段: - ffx session launch fuchsia-pkg://fuchsia.com/pkg-name#meta/your_session.cm- 如要進一步瞭解 - ffx session指令,請執行- ffx session --help。如要進一步瞭解- ffx,請參閱- ffx documentation。