组件标识符

组件框架使用不同的标识符来描述组件。本部分介绍了以下组件标识符及其用法之间的关系:

  • 组件网址:将组件标识为要由组件解析器提取的资源。
  • Monikers:标识组件实例树中的特定组件实例。

组件网址

组件框架使用组件解析器将组件网址解析为组件声明

用法

组件网址的主要用途是在组件实例定义中标识组件,方法是作为子声明的一部分:

{
    children: [
        {
            name: "logger",
            url: "fuchsia-pkg://fuchsia.com/logger#logger.cm",
        },
    ],
}

上面的示例将 logger 组件声明为软件包代码库中托管的 Fuchsia 软件包中的绝对资源。

组件框架也支持相对网址。

如需识别与父组件位于同一软件包中的组件,请仅指定网址片段:

{
    children: [
        {
            name: "child",
            url: "#meta/child.cm",
        }
    ],
}

如需标识父组件软件包的子软件包中的组件,请添加子软件包名称,后跟组件清单路径(通过网址片段):

{
    children: [
        {
            name: "child",
            url: "child#meta/default.cm",
        }
    ],
}

相对组件网址经常用于测试,其中最佳做法是将生产组件重新打包到测试专用软件包中,以提高封闭性

有关组件网址语法的更多详情,请参阅组件网址参考

莫尼克

它遵循的语义与 fuchsia.io 路径类似。

每个路径元素都是父组件分配给其子元素的名称,最终标识与最后一个路径元素对应的“叶组件”。

单词语始终与父组件或整个组件拓扑的根相关。

用法

组件名称的一些示例如下:

  • .:表示自我参照的称谓。例如,可以使用此称呼来指代根组件(由 component_manager 启动的第一个组件)。其他用途取决于上下文。
  • alice/carol/sandy:将组件实例“sandy”唯一标识为“alice”和“carol”的后代。
  • alice/support:dan:将组件实例“dan”标识为来自“alice”的“support”集合中的元素。

系统会将莫名词传递给开发者工具(例如 ffx component explore),以标识目标设备上的特定组件实例。它们也是诊断选择器语法的第一部分。

开发者工具实现使用称呼与目标设备上的特定组件实例进行交互。

如需详细了解组件名称语法,请参阅组件名称参考

设计原则

稳定性

单语词是稳定的标识符,前提是指向该组件的组件拓扑不会发生变化。

隐私权

莫名描述可能包含有关用户正在运行的其他组件的隐私敏感信息。

为了保留组件的封装,组件无法确定在其领域外运行的其他组件的名称。组件无法得知自己的名称、其父级或同级的名称。

标签可能会出现在系统日志和开发者工具的输出中。