【问题标题】:Making existing C++ project to work in Firefox OS使现有的 C++ 项目在 Firefox OS 中工作
【发布时间】:2014-03-12 02:36:28
【问题描述】:

我有一个现有的 c++/java 项目,可以在 linux、windows 和 android 上运行,我想让它也可以在 firefox OS (B2G) 上运行。 我已经为 FFOS 构建了我的项目的二进制文件(守护程序和客户端),并使用 adb shell 在命令行上对其进行了测试。问题是如何使用 javascript 通过用户应用程序访问该守护进程。

由于 FFOS 将 HTML/JS/CSS 用于应用程序,一个建议是使用“emscripten”工具将整个项目转换为 javascript。但是考虑到我的项目的规模和复杂性,这似乎不起作用(很多错误,缺少头文件等)。它使用一些低级功能,例如创建 UDP 数据包、发送多播数据包以及侦听和连接到 tcp/udp 端口​​; javascript API 中缺少这些功能(我错了吗?)。

另一个建议是使用 Web IDL(需要修改 FFOS gecko 引擎),但我不确定它在我的场景中如何帮助我。

任何想法/提示/建议将不胜感激。 谢谢。

【问题讨论】:

  • 现在,我们似乎想探索 WebIDL 选项。谁能让我知道如何在我的情况下使用它?我需要做什么?

标签: javascript gecko firefox-os emscripten webidl


【解决方案1】:

没有办法在没有根设备的 Firefox OS 上安装二进制文件。打包应用仅支持 HTML/JS/CSS:https://developer.mozilla.org/en-US/Marketplace/Publishing/Packaged_apps

WebIDL 在这里无济于事,因为您也无法修改 Gecko 或任何已安装的底层二进制文件。这仅适用于您正在分叉操作系统并希望添加新的 Web API。

emscripten 可能是一个不错的选择 - 有一个活跃的 Google 组,您可以在那里找到有关编译错误的帮助:https://groups.google.com/forum/#!forum/emscripten-discuss

将您的本机代码放在远程 Web 服务后面是否合适?这有一些缺点,例如确保它是安全的,并使您的应用程序需要服务器连接(可能出于离线目的进行缓存),但是如果您已经运行了 Web 服务,特别是如果您的应用程序已经需要连接,那么这并不是很大的区别.

【讨论】:

  • 我知道我们无法在普通手机上安装二进制文件。我有一部测试手机,我已经在上面构建并安装了 B2G。所以实际上,如果这是唯一的方法,我们可能不得不分叉操作系统并将我们的项目添加到其中。虽然此时这可能没有多大意义,但我们暂时不打算将我们的项目/应用程序分发给其他人。在你提到的帮助下,我可以再试一次 emscripten,但我不相信 Javascript API 是否可以完成我们项目所需的一切。
  • Webservice 建议很好,我们最初考虑将我们的应用程序捆绑到设备中。但是,如果我们可以避免分叉操作系统,并以某种方式使用 web 服务,它可能会在我们这边进行一些可行性思考。感谢您的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
  • 2014-10-30
  • 1970-01-01
  • 2015-11-19
相关资源
最近更新 更多