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

标签 android ios mobile cross-platform

我在这里找到了一个相关的答案:How do cross-platform mobile app development frameworks work?

但我更多地考虑的是 c++ 跨平台 SDK 的工作(例如 Corona、Marmalade、EdgeLib 等)。它们提供了为 iOS 和 Android 导出二进制文件的能力,同时允许开发人员使用 C++ 代码。下面列出了我的假设,但如果我有任何错误,请更正:

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

最佳答案

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

目标平台(Android 或 iOS)上的最终编译留给您,使用 native IDE(适用于 iOS 的 Xcode 和适用于 Android 的带有 Android SDK 的 Eclipse IDE)。因此,要创建 iOS 应用程序,您仍然需要成为 Apple iOS 开发人员计划的成员(例如,每年 99 美元),而 Eclipse IDE 和 Android SDK 是免费的。

您的 Corona SDK 示例并不完全相关,因为 Corona 使用他们在云中的自定义构建服务器构建为 native 二进制格式 - 那里发生的事情没有完整记录为它的封闭源工具包。您每年向 Corona 支付订阅费才能构建应用程序。我不确定您提到的其他那些(Marmalade、EdgeLib 等),但会假设它们类似于 MoSync。

关于android - 跨平台移动 C++ SDK 通常如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8629434/

相关文章:

java - 为什么 Java 代码在移入函数时不起作用?

java - 具有基本安全性的 REST Web 服务的 Android 客户端

objective-c - 在其他 UITabbar 上操作导航 Controller 堆栈

ios - 绘制文本并添加到 UIImage iOS 5/6

android - 在多人游戏中跨多个移动设备宽高比发送图像位置

html - Bootstrap 导航栏 CSS 问题

css - 触摸时显示截断的文本

java - 无法解决 Glide 库 android 中的 centercrop 占位符错误等

Android MVP - 应该避免在演示者中使用 R.string 引用吗?

ios - 从 web json 解析图像