跨平台移动C++ SDK通常如何工作?

cod*_*ner 5 mobile android cross-platform ios

我在这里找到了一个相关的答案:跨平台移动应用程序开发框架如何工作?

但我正在考虑更多关于c ++跨平台SDK的工作(例如Corona,Marmalade,EdgeLib等).它们提供了导出iOS和Android二进制文件的功能,同时允许开发人员使用C++代码.我的假设如下所示,但如果我在任何地方错了,请更正它:

  1. 用户使用C++编写代码.
  2. SDK具有一个接口层,其中包含用户代码中调用的C++函数,请求移动操作系统特定的功 此接口层是根据在特定移动操作系统中实现SDK函数调用所需的代码构建的(用Java编写,适用于Android和Obj-C for iOS).
  3. 第一部分我最困惑的是因为我没有太多的移动开发经验点:iOS和Android都有C++交叉编译器,可以在用户的​​应用程序中编译用C++编写的通用逻辑代码吗?

dod*_*der 5

MoSync是基于C++的跨平台移动工具包的一个示例 - 这个工具包首先使用开源GCC编译器将应用程序的C++代码编译成类似于程序集的格式.MoSync的一个自定义工具(称为"PipeTool")然后将这个汇编格式与其预编译的库组合成各种目标格式,包括java字节码(用于Android)或Objective-C源(用于iOS).这里有关于此过程的更多细节.

目标平台(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类似.