Android上的QML - C ++是否适用于业务逻辑?

时间:2014-04-23 21:22:08

标签: android c++ qt qml qtandroidextras

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

但是如果你编写一个前端有QML的应用程序,而且对于QML没有涵盖的任何内容的C ++,它可以在Android上运行吗?或者你需要在java中重写C ++片段吗?该应用程序不是一个简单的应用程序,所以我们将不得不提供一些QML之外的逻辑,至少,它确实看起来那样。虽然我们可以通过使用QT来节省时间和$$$而不必在台式机和iOS上使用本机,但我发现Android存在问题。

1 个答案:

答案 0 :(得分:3)

  

但是如果你编写一个前端有QML的应用程序,而且对于QML没有涵盖的任何内容的C ++,它可以在Android上运行吗?或者你需要在java中重写C ++片段吗?

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

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

考虑到这一点,您可以在后台保留C ++接口到QML时隐藏Java实现细节。因此,它应该就是这样。

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

Qt Android Extras

在这里你可以找到一个很好的例子:

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