Firefox OS apps 架构

本文讲述了Firefox OS 应用启动和管理的内部原理。对 Firefox OS 平台开发者和将操作系统移植到硬件的团队是有用的。如果您仅仅是一个应用开发者,则不用了解这些细节,但又何妨一读,因为它是十分有趣的过程。

app启动过程

当用户选择他们想要启动或需要启动的应用时, home screen app会通过App API,获取到一个app的引用,之后会调用 App.launch() 方法启动这个应用。 

Gecko 接收到请求后会向携带着 app 详情 向System app发送 mozChromeEvent 事件。 System app 对事件进行处理:向 DOM tree中插入一个新的 <iframe> ,并且在这个新的 <iframe> 中装载 app。 此后 frame 就会是 app 的  home 了,直到 app终止。

每个 app都需要一个 manifest文件来对 app进行描述,并且在它的包中有一个特定的文件结构。要了解更多详情,请参阅文章 App manifest

与 Gecko 通信

Gecko 和 Gaia 系统应用之间的通信是通过 mozChromeEventmozContentEvent 完成的。mozChromeEvent 是从 chrome 到 content 的广播;而   mozContentEvents 是从 content 到  chrome 的广播。 这种通信过程用来控制可信任UI 的创建和关闭,以及为通知和其他工作注入需要的功能,如告诉System app 启动一个 app 。

注意:  通过阅读  System app documentation 您可以获取到关于这些事件工作的更多的内容。 通过阅读 b2g/chrome/content/shell.js 您也可已获取到更多使用的细节。 

参见

文档标签和贡献者

最后编辑者: ReyCG_sub,
隐藏侧边栏