组件框架使用不同的标识符来描述组件。本部分介绍了以下组件标识符及其用法之间的关系:
组件网址
用法
组件网址的主要用途是在组件实例定义中标识组件,方法是作为子声明的一部分:
{
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",
}
],
}
相对组件网址经常用于测试,其中最佳做法是将生产组件重新打包到测试专用软件包中,以提高封闭性。
有关组件网址语法的更多详情,请参阅组件网址参考。
莫尼克
每个路径元素都是父组件分配给其子元素的名称,最终标识与最后一个路径元素对应的“叶组件”。
单词语始终与父组件或整个组件拓扑的根相关。
用法
组件名称的一些示例如下:
.
:表示自我参照的称谓。例如,可以使用此称呼来指代根组件(由component_manager
启动的第一个组件)。其他用途取决于上下文。alice/carol/sandy
:将组件实例“sandy”唯一标识为“alice”和“carol”的后代。alice/support:dan
:将组件实例“dan”标识为来自“alice”的“support”集合中的元素。
系统会将莫名词传递给开发者工具(例如 ffx component explore
),以标识目标设备上的特定组件实例。它们也是诊断选择器语法的第一部分。
开发者工具实现使用称呼与目标设备上的特定组件实例进行交互。
如需详细了解组件名称语法,请参阅组件名称参考。
设计原则
稳定性
单语词是稳定的标识符,前提是指向该组件的组件拓扑不会发生变化。
隐私权
莫名描述可能包含有关用户正在运行的其他组件的隐私敏感信息。
为了保留组件的封装,组件无法确定在其领域外运行的其他组件的名称。组件无法得知自己的名称、其父级或同级的名称。
标签可能会出现在系统日志和开发者工具的输出中。