Qt on Android - C++代码是否在 Dalvik 虚拟机中运行

Qt on Android - does the C++ code run in the Dalvik virtual machine

本文关键字:Dalvik 虚拟机 运行 是否 代码 on Android C++ Qt      更新时间:2023-10-16

我听说C++代码在所有平台上"本机"运行。 通过这一点,我猜建议的是Qt的跨平台能力没有使用HTML 5之类的东西。

但这是否意味着在Android Qt代码上运行在Dalvik虚拟机中?

Android可以理解Dalvik或更新的ART。Dalvik和ART都能够通过Android NDK链接到C/C++代码,这是Android对JNI的采用。适用于Android的QT虽然基于C++,但仍然需要最少量的基于Java的初始化。这意味着,即使C++代码以本机方式运行(依赖于架构)到底层操作系统,它仍然需要通过运行在虚拟机上的代码(特定于Android)来呈现,因为虚拟机不直接理解C++,但可以通过它自己的基于Java的框架(即Android NDK)链接到它。

请检查 https://www.qt.io/blog/2013/07/23/anatomy-of-a-qt-5-for-android-application

在最顶层,适用于Android的Qt应用程序由两部分组成:

Qt应用程序:这是您作为应用程序开发人员自行管理的跨平台代码和资源,并由您的 qmake .pro 文件汇总。

安卓应用启动器:这是Qt Creator在您首次将项目连接到Qt for Android Kit时为您生成的。

因此,Android应用程序启动器应该在Dalvik VM中运行。我不确定这是否适用于 Android 5.0 的 ART 运行时