用于C ++和平台本机代码(iOS,Android)之间通信的跨平台库

时间:2015-02-05 14:25:11

标签: android c++ ios qt cross-platform

我知道这已经被问过很多次了,但是在现有的SO答案中我找不到任何我想要的东西。

基本上,我们即将创建具有以下功能的复杂移动应用程序:

  • 使用OpenGL进行3D图形渲染
  • 与相机,加速度计,陀螺仪和其他硬件功能集成
  • 使用网络(HTTP)
  • 本地数据库(SQLite)
  • 硬盘使用情况
  • zip文件和加密(OpenSSL)
  • 与第三方硬件(例如连接到平板电脑的第三方传感器)与自己的SDK集成

我们希望此应用在iOS,Android和Windows环境中运行。考虑了许多解决方案,包括Qt,Xamarin和其他解决方案,但在如此复杂的用例中使用这些框架似乎风险很大。

我们现在要考虑的是本机构建每个应用程序,但在共享C ++库中维护尽可能多的共享代码。

例如,我们希望为各种功能制作C ++组件,例如:

  • 与服务器的HTTP通信
  • 文件加密
  • 业务逻辑
  • ...

然而,存在一定的问题。目前尚不清楚,我们如何在库中连接原生UI层和C ++代码。 从Java或Obj-C代码调用库函数很容易,但是其中许多函数会调用一些异步任务(调用HTTP url,将文件转储到磁盘)。目前尚不清楚如何将此类异步任务的结果传播回UI代码。

我们理想的是一些MvvM架构,其中Views完全是特定于平台的,但是Models和部分ViewModel是用C ++编写的。此外,这种架构通常使用"服务" - 那些也可以有特定于平台的界面,但是C ++核心。

是否有一种已知的方法来提供此类集成?也许有图书馆提供"中间层" UI代码和库之间?

或许我们的方法根本不可行,在这种情况下你会建议什么?

0 个答案:

没有答案