android 上的 QML - C++ 是不是适用于业务逻辑? [关闭]

Posted

技术标签:

【中文标题】android 上的 QML - C++ 是不是适用于业务逻辑? [关闭]【英文标题】:QML on android - will C++ work for business logic? [closed]android 上的 QML - C++ 是否适用于业务逻辑? [关闭] 【发布时间】:2014-04-23 21:22:08 【问题描述】:

对即将开展的项目使用 QT/QML 的可行性进行一些调查。客户最初希望它在 Windows 和 Mac 桌面上运行,随后可能会在 iosandroid 上运行。他们想知道我们建造的东西会相对容易地移动。我不是桌面程序员,但我看到的是 QML 旨在与 C++ 一起使用。因此,构建一个在 Mac 和 Windows 上运行的应用程序应该相对容易,而且 iOS 将接受 C++,所以我看不到那里有很多障碍。但我对Android感到困惑。我看到人们谈论使用 QML 构建 Android 应用程序,但他们似乎仍在使用 java;我收集它在后台使用 NDK。

但是,如果您编写的应用程序具有 QML 作为前端,并且 C++ 用于 QML 未涵盖的任何内容,那么它可以在 Android 上运行吗?或者你需要用java重写C++部分吗?该应用程序不是一个简单的应用程序,因此我们将不得不在 QML 之外提供一些逻辑,至少看起来确实是这样。虽然我们可以通过使用 QT 来节省时间和美元,而不必在桌面和 iOS 上进行本地化,但我发现 Android 未来会出现问题。

【问题讨论】:

好的,它有点宽泛,但出于业务和 NDA 的原因,不能再深入探讨。我将看看 Laszlo 为链接提供的内容,看看我能找到什么。谢谢。 【参考方案1】:

但是,如果您编写的应用程序具有 QML 作为前端,并且 C++ 用于 QML 未涵盖的任何内容,那么它可以在 Android 上运行吗?还是需要用java重写C++部分?

这真的取决于。您可能需要通过 Android 平台不为某些功能提供直接和公共 API 的 Java 接口。一个例子是低级 IO 操作,例如为 USB 串行设备编写串行端口,但还有更多。

一般来说,Qt模块和基于Qt的第三方软件都是使用Qt 5.2引入的QAndroidExtras插件模块。这将允许轻松地将后端集成到您的 C++ 逻辑中。

考虑到这一点,您可以在后台隐藏 Java 实现细节,同时仍然维护 QML 的 C++ 接口。因此,它应该以这种方式工作。

请参阅以下文档以掌握它:

Qt Android Extras

您可以在这里找到其中一个很好的例子:

Qt Notifier - Demonstrates calling Java code from an Android application.

【讨论】:

以上是关于android 上的 QML - C++ 是不是适用于业务逻辑? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中从 QML 读取值

C++ 类以时尚 TypeError 暴露于 QML 错误:对象的属性“...”不是函数

Qt:如何在 C++ 端而不是 QML 上监视 Q_PROPERTY 更改

如何从 C++ 端连接到 QML 项目的 onClick 事件

我如何检查 qml 上的网络连接?

安卓上的 PySide QML 项目