Rhodes、Phonegap 和 Appcelerator 如何能够采用 Javascript 或 Ruby,并将它们编译为应用程序 SDK 的二进制文件,这些应用程序 SDK 通常需要使用 Obj-C、Java 和其他语言编写应用程序?
4 回答
Appcelerator 联合创始人 Jeff Haynie在这里解释了 Titanium Mobile 的工作原理。
Phonegap 使用默认的浏览器渲染引擎,并使用它来显示您的应用程序。然后,javascript 由框架的本机(编译)部分处理。
Appcelerator 使用类似的东西,但如果我没记错的话,它会编译整个应用程序。
MoSync 使用类似于 javaME 的设置。
Rhodes 使用本地服务器。它使用它与设备进行通信。
Javascript 解释器内置在 webkit 浏览器引擎中,iPhone/iOS SDK 提供了对该解释器的足够访问权限,可以运行几乎整个用 Javascript 编写的应用程序,只需一个很小的 Objective C 包装器即可启动。
Android 通过 NDK 支持本机 ARM 机器代码,因此几乎任何具有编译器的语言都可以创建独立的 ARM 二进制文件(但几乎不需要操作系统访问)都可以用作库并通过 NDK 接口从 Java 访问应用存根。
我创建了一个开源项目http://propertycross.com,它通过展示使用 Sencha、Titanium、Xamarin 等实现的相同应用程序来帮助选择跨平台移动框架。该项目还包括每个框架如何工作的详细信息。它应该可以帮助您比较最终用户体验、代码、开发人员体验和各种选项之间共享的代码。