我在这里找到了一个相关的答案:How do cross-platform mobile app development frameworks work?
但我正在考虑更多关于c ++跨平台SDK的工作(例如Corona,Marmalade,EdgeLib等)。它们提供了导出iOS和Android二进制文件的功能,同时允许开发人员使用C ++代码。我的假设如下所示,但如果我在任何地方都错了,请纠正它:
答案 0 :(得分:5)
MoSync是基于C ++的跨平台移动工具包的一个示例 - 这个工具包首先使用开源GCC编译器将应用程序的C ++代码编译成类似于程序集的格式。 MoSync的一个自定义工具(称为“PipeTool”)然后将这个汇编格式与其预编译的库组合成各种目标格式,包括java字节码(用于Android)或Objective-C源(用于iOS)。有关此流程的更多详细信息here。
目标平台(Android或iOS)上的最终编译由您自己决定,使用原生IDE(适用于iOS的Xcode和适用于Android的Android SDK的Eclipse IDE)。因此,要创建iOS应用程序,您仍然需要成为Apple iOS开发人员计划的成员(例如每年99美元),而Eclipse IDE和Android SDK是免费的。
您的Corona SDK示例并不完全相关,因为Corona使用云中的自定义构建服务器构建为本机二进制格式 - 其中没有完全记录为其封闭的源工具包。您每年向Corona支付订阅费,以便能够构建应用程序。我不确定你提到的其他人(Marmalade,EdgeLib等),但会认为它们与MoSync类似。
答案 1 :(得分:4)
查看codenameone.com - 他们使用Java但最终编译为C ++ for iOS和Java for Android。
不同之处在于他们的环境包括所有图形,并且他们自己创建控件,因此只需一个代码库即可获得实际的本机应用程序。