gpt4 book ai didi

c++ - 如何使用通用 C++ 业务逻辑和数据访问层构建跨平台移动应用程序

转载 作者:行者123 更新时间:2023-11-28 07:08:42 26 4
gpt4 key购买 nike

我们正在尝试为所有移动平台(Android、iPhone、Windows 手机)创建一个应用程序。我们将使用每个平台(Java、Objective C、C#)的本地开发语言构建用户界面。对于中间层(数据访问层和业务逻辑层),我们计划在所有平台上使用 C++。 我们将使用像 Curl、sqlite3、libzib 这样的库。所以我认为一个好的解决方案是创建两个单独的 C++ 项目(DataAccess 和 Business Logic)并引用我们需要的那些库。首先,我们将从 Android 开始,因此我将使用 Android NDK 将这两个项目作为预构建的静态库包括在内,并在 jni 文件夹中添加一些方法,它们将在 UI 和业务逻辑之间进行通信。稍后我们将对其他两个平台执行相同的操作。由于我是 C++ 的新手,所以我想提出以下问题:

  1. 您认为这在理论上可行吗?

  2. 我们将面临哪些问题(例如调试、在不同操作系统中使用 Curl)?

  3. 是否有使用相同方法的开源移动项目?

最佳答案

Do you think that this theoretically will work?

是的,我已经为 Android 和 iOS 编写了应用程序,在这两个平台上都使用了用 C++ 编写的数据访问层。我写了 Android 版,一个同事写了 iOS 版。它不是开源的,所以我无法向您展示代码。

What problems are we going to face (e.g debugging, using Curl in different operating systems)?

在 Android 上调试共享的 C++ 代码可能是一件很痛苦的事情。我从来没有得到在 Windows 上工作的调试器。如果我无法在 iOS 上重现和调试,我通常会仔细阅读我的代码并将消息打印到 LogCat。通常这只会影响链接 C++ 业务逻辑和 native UI 代码的 JNI 层。

您可能必须为平台单独构建第 3 方库。 Curl 有针对每个平台构建它的说明,因此应该不会有太大的麻烦。

除了学习 JNI 之外,我遇到的最大问题是应用程序必须在每个平台上看起来相同(或非常相似)。我建议查看 Qt Mobile Edition作为建议使用 πìντα ῥεῖ,但目前不支持 Windows 手机。不过,您至少可以为三个平台中的两个编写一个 UI,并且您的共享业务代码仍然可以重用。我们正在启动第二个应用程序,而 Qt 绝对是我们的最佳选择。我认为我们不想重复尝试使用截然不同的 API 在两个平台上提供相同功能的经历。

Are there any open source mobile projects using the same approach?

我不知道有什么副手,但我相信你可以谷歌一下。

关于c++ - 如何使用通用 C++ 业务逻辑和数据访问层构建跨平台移动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21368304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com