Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

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 您也可已获取到更多使用的细节。 

参见

文档标签和贡献者

 此页面的贡献者: chrisdavidmills, ReyCG_sub
 最后编辑者: chrisdavidmills,