跨平台移动应用开发框架是如何工作的?

12

Rhodes、Phonegap和Appcelerator如何将Javascript或Ruby编译成二进制文件,以便用于需要使用Obj-C、Java等语言编写应用程序SDK的平台?


JavaScript 可能是许多移动平台本地支持的语言,而 Ruby、C 或 Python 则需要在高级或二进制代码级别上转换为目标系统的主要语言(例如 Obj-C、Java 等)。它也可能以某种方式进行解释。我不会惊讶于通过 Jython,你可以在 Android 上运行 Python。 C 本身可以以原生方式编译到所使用的硬件平台,但我不太了解与 Android/iOS 的通信。 - Trilarion
4个回答

4

Appcelerator的联合创始人Jeff Haynie在这里解释了Titanium Mobile的工作原理。


3

Phonegap使用默认的浏览器渲染引擎来显示您的应用程序。然后,框架的本地(编译)部分处理JavaScript。

Appcelerator使用类似的方法,但如果我没记错的话,会编译整个应用程序。

MoSync使用与JavaME类似的设置。

Rhodes使用本地服务器。它使用此服务器与设备通信。


Rhodes使用本地服务器,也就是指一个嵌入在移动设备中的小型Ruby服务器? - user94154
1
Appcelerator不使用设备浏览器(除非你特别想要),它使用本地控件。 - Alan B

2
一个Javascript解释器被构建到了Webkit浏览器引擎中,而iPhone/iOS SDK提供了足够的访问权限来运行几乎完全使用Javascript编写的应用程序,只需要一个微小的Objective C包装器来启动应用程序。
Android通过NDK支持本地ARM机器码,因此几乎任何具有可以创建独立ARM二进制文件的编译器(但需要很少或没有操作系统访问权限)的语言都可以用作库,并通过NDK接口从Java应用程序桩访问。

非常有趣。你知道Rhodes如何从HTML + ERB转换为webkit Javascript再到Obj-C二进制文件吗? - user94154

1
我创建了一个开源项目http://propertycross.com,它可以通过展示使用Sencha、Titanium、Xamarin等框架实现的同一应用程序来帮助选择跨平台移动框架。该项目还包括每个框架的详细信息。它应该有助于比较各种选项之间的最终用户体验、代码、开发人员体验和代码共享。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接