工作階段是指在啟動時啟動的首個產品專屬元件。工作階段元件負責建構產品的使用者體驗。
啟動至工作階段
如要啟動工作階段,請按照下列步驟操作:
如要讓工作階段在啟動時執行,您必須使用工作階段的網址設定產品版本。找出工作階段的元件網址:
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
。