components organization
组件组织
系统中所有组件组成一棵单根组件实例树。这棵树结构控制着组件行为的几个重要方面。
![树图展示了组件实例是如何组织的。这种父子关系控制组件行为的几个方面。] (/get-started/images/intro/component-organization.png){: width="712"}
树中的父组件负责将其他组件的实例创建为其子组件,并向其提供必要能力。与此同时,子组件向父组件公开能力。子组件可通过如下方式之一创建:
- 静态创建:父组件在自身组件声明中声明子组件的存在。
- 动态创建:父组件在运行时通过
fuchsia.component.Realm协议将子组件添加到组件集中。
任何一个父组件及其所有子组件在树中形成一个称为领域(realm)的组,领域使父组件可以控制哪些能力可以流入和流出组件子树,从而建立一个能力边界。组件使用 expose 关键字来决定是否将能力导出到领域外:
一旦将能力公开至领域,父组件就可以将其分享给领域内的其它组件。这可以通过使用 offer 关键字达成:
[组件管理器][glossary.component-manager]负责解析通过提供对应能力(如目录或协议)的组件访问该能力的请求。这就是能力路由。组件管理器只能解析在同一领域内公开和提供的能力。
![组件如何通过“能力路由”共享能力的图示,描述了资源如何在特定领域内变得可用。] (/get-started/images/intro/capability-routing.png){: width="614"}
最后更新:
2022 年 12 月 31 日(Saturday) 21:07 CST