Fuchsia模块化介绍

Fuchisa的应用程序及应用程序框架是一个模块化的框架。Fuchsia系统中的组件包含着UI、数据、用户等内容,模块化框架将这些组合在一个逻辑概念上的可视化的被叫做story的容器中。从而实现对用户体验的统一管理。

组件化框架提供了各类扩展用户体验的组件,并为组件组成、如何通信、任务代理、状态管理、数据规范等制定了实现规范。

模块化框架如何使用

模块化框架允许使用任何开发语言开发模块组件,例如:c++、flutter等,只要开发的模块作为fuchsia的组件可以在fuchsia系统中包含的runtime运行即可。模块化框架和它启动的组件之间通过FIDL进行通信,FIDL是Fuchisa上标准的IPC机制。

扩展点

框架提供了几个不同的组件类型,开发者可以实现这些类型的组件来扩展用户体验:

  • Modules

用来显示UI,可以组合进Story中作为可视化部分的组件

  • Agents

运行在后台,用来向其他代理和模块提供服务或数据的组件

  • Shells

用来管理系统UI和用户交互的组件

  • EntityProviders

数据对象(Entity)的提供者组件,通过EntityProviders,数据对象(Entity)将在以模块化运行的组件间进行共享。

basemgr 和 sessionmgr

当fuchsia启动后,basemgr进程和sessionmgr进程将会被启动,这两个进程负责提供会话管理、组件声明周期管理和状态管理。

  • basemgr

负责用户认证和授权,它利用系统UI来呈现相关的UI。

  • sessionmgr

负责管理Story、Modules、Agents的声明周期,以及他们之间的服务调用和状态同步。它使用session、story容器来组合和管理Story、Module、Agent等组件。

如上,仅对模块化框架中出现的一些概念简要介绍下,后续将依次介绍模块化的各类型组件,及这些组件是如何组合为story,及如何被管理的。

robot wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!