Android的Javascript引擎选项(非WebKit)
Javascript engine options for Android (non-WebKit)
我们已经创建了一个HTML5+Javascript应用程序,并希望将其移植到Android。我们已经知道WebKit无法运行HTML5应用程序,因为
-
异构的Android代码库严重支持最新的HTML5壮举
-
我们使用WebGL
-
复杂的HTML5用户界面太慢,无法在Android WebKit 上渲染
然而,我们的核心应用程序逻辑仍然存在于Javascript中。
现在正在寻找的方法
-
运行直接移植(复制)Javascript 的应用程序逻辑
-
将自己绑定到Android Java UI API轻松
-
围绕这个Javascript逻辑构建原生Android UI
-
为Android OpenGL ES创建与WebGL兼容的绑定,并从Javascript 访问图形API
-
希望JIT或性能不错的
我们在Android上有哪些自定义JS运行时选项?我知道Firefox Aurora已经做到了;Firefox是一款基于JS的大型应用程序,现在他们在Aurora构建中从XUL切换到了原生Android UI。
由此产生的应用程序必须是生产质量的,并服从Android市场分销。
如果你想要所有的HTML5(尤其是WebGL),那么你也需要DOM API,它们不是SpiderMonkey的一部分。SpiderMonkey只是核心的Javascript语言解释器,不包含像窗口/文档/元素对象这样的特定于浏览器的绑定。因此,如果你想在Android上使用HTML5+JS,你必须嵌入整个浏览器,这在Firefox Aurora上是不容易实现的。
看看FirefoxMobile的新原生UI代码,它嵌入了Gecko(以及SpiderMonkey),并具有Firefox桌面版的所有内容功能,包括WebGL。
不过,请注意,Firefox Mobile过去做的事情与您想要的非常相似:嵌入Gecko引擎(并为其提供必要的设备访问API),然后使用XUL和JavaScript执行所有UI和应用程序逻辑。这导致了严重的性能问题,也是我们现在为Mobile开发Java UI的主要原因。
正如staktrace所提到的,如果你想要WebGL,你需要DOM,这意味着你需要Gecko的整体。或者,您可以直接将OpenGL ES与Android的图形API结合使用。可以提取或重用Gecko的一些WebGL代码,并创建自己的OpenGL JavaScript绑定,但这不是WebGL。
- 我的单元测试选项是什么
- 如何更改bigquery API中的计费层选项
- 使用Javascript获取所选选项ID
- Selectize.js:如何对整数值的选项进行排序
- 通过js在新选项卡中有条件地打开url
- 按照选项卡索引的顺序循环一个jQuery选择
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- 无法在Ionic select中预先选择最后一个选项
- 如何在选项卡上定义属性'的主窗口对象
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 使用此选项选择父类内部的类
- CKeditor:更改对话框中的默认选择选项
- JQuery覆盖不更改单选选项
- 活动选项卡's源代码-获取变量s值
- 绑定时将Parsley minlength消息作为选项传递时,未对其进行自定义
- 获取所选选项的Javascript在Webkit/FF中有效,但在IE中无效
- 如何在单击 Webkit 通知时从浏览器中的任何其他选项卡移回当前选项卡
- 在webkit中不触发布局也可能是IE中的优化选项
- Android的Javascript引擎选项(非WebKit)
- 如何在webkit浏览器(chrome/safari)中以编程方式打开新选项卡