在開發期間啟動元件

為了進行測試和偵錯,ffx component 指令可在裝置上快速啟動動態元件例項

概念

裝置上的元件執行個體通常會使用元件資訊清單宣告,該資訊清單會以靜態方式定義裝置上元件的拓撲和功能。不過,在裝置上建立元件例項的方法不只一種,也可以透過靜態方式宣告元件。您也可以使用 ffx component 指令,在執行階段在裝置上建立動態元件執行個體。

重要的差別在於 Fuchsia 會限制所有動態元件執行個體在元件集合下執行。集合可做為動態元件執行個體的容器。因此,集合內元件例項的功能會受到集合可公開提供的功能限制。

雖然新的元件集合可以使用元件資訊清單宣告 (類似宣告靜態元件執行個體),Fchsia 也提供一些預先定義的集合,適用於一般用途。舉例來說,ffx-laboratory 是其中一個預先定義的集合。

啟動元件

如要建立新的動態元件執行個體,您必須先執行 ffx component create,將新的元件新增至裝置上的元件例項樹狀結構。新增後,您可以執行 ffx component start 來啟動裝置上的元件。

如要在裝置上啟動新的動態元件執行個體,請按照下列步驟操作:

  1. 建立新的元件執行個體:

    ffx component create <TARGET_MONIKER> <COMPONENT_URL>
    

    更改下列內容:

    • TARGET_MONIKER:新元件執行個體的目的地路徑名稱。別名必須包含路徑中的元件集合。
    • COMPONENT_URL:元件的資源位置。

    以下範例會為 hello-world-cpp.cm 元件建立新的元件例項,並將其別名指派為 /core/ffx-laboratory:hello-world

    $ ffx component create /core/ffx-laboratory:hello-world fuchsia-pkg://fuchsia.com/hello-world-cpp#meta/hello-world-cpp.cm
    URL: fuchsia-pkg://fuchsia.com/hello-world-cpp#meta/hello-world-cpp.cm
    Moniker: /core/ffx-laboratory:hello-world
    Creating component instance...
    
  2. 啟動元件執行個體:

    ffx component start <TARGET_MONIKER>
    

    TARGET_MONIKER 替換為步驟 1 中使用的路徑名稱。

    以下範例會在 /core/ffx-laboratory:hello-world 啟動元件執行個體:

    $ ffx component start /core/ffx-laboratory:hello-world
    Moniker: /core/ffx-laboratory:hello-world
    Starting component instance...
    

在 ffx-laboratory 下啟動元件

啟動動態元件例項通常需要執行 ffx component createffx component start 指令的序列 (請參閱「啟動元件」)。不過,ffx component run 指令可以在單一指令列中啟動動態元件執行個體。

如要快速啟動 ffx-laboratory 集合下的元件,請執行下列指令:

ffx component run /core/ffx-laboratory:<NAME> <COMPONENT_URL>

COMPONENT_URL 替換為元件的資源位置,並將 NAME 替換為 ffx-laboratory 集合中的元件執行個體名稱。

以下範例會在裝置上啟動 hello-world-cpp.cm 元件:

$ ffx component run /core/ffx-laboratory:hello-world-cpp fuchsia-pkg://fuchsia.com/hello-world-cpp#meta/hello-world-cpp.cm
URL: fuchsia-pkg://fuchsia.com/hello-world-cpp#meta/hello-world-cpp.cm
Moniker: /core/ffx-laboratory:hello-world-cpp
Creating component instance...
Starting component instance...

ffx component run 指令會執行下列步驟:

  1. 執行 ffx component create 以使用元件名稱做為目標路徑名稱,在 ffx-laboratory 集合下建立新的元件執行個體。
  2. 執行 ffx component start 以啟動裝置上的元件執行個體。

舉例來說,在上述範例中執行 ffx component run /core/ffx-laboratory:hello-world-cpp fuchsia-pkg://fuchsia.com/hello-world-cpp#meta/hello-world-cpp.cm 等同於執行下列指令:

$ ffx component create /core/ffx-laboratory:hello-world-cpp fuchsia-pkg://fuchsia.com/hello-world-cpp#meta/hello-world-cpp.cm
$ ffx component start /core/ffx-laboratory:hello-world-cpp

停止元件

如要停止裝置上的執行元件執行個體,請執行下列指令:

ffx component stop <TARGET_MONIKER>

TARGET_MONIKER 替換為元件執行個體的別名。

以下範例會在 /core/ffx-laboratory:hello-world 處停止元件執行個體:

$ ffx component stop /core/ffx-laboratory:hello-world
Moniker: /core/ffx-laboratory:hello-world
Stopping component instance...

刪除元件

如要在裝置上從元件執行個體樹狀結構中移除動態元件執行個體,請執行下列指令:

ffx component destroy <TARGET_MONIKER>

TARGET_MONIKER 替換為元件執行個體的路徑名稱。

以下範例會移除 /core/ffx-laboratory:hello-world 中的元件執行個體:

$ ffx component destroy /core/ffx-laboratory:hello-world
Moniker: /core/ffx-laboratory:hello-world
Destroying component instance...