Qt on Android - C++代码是否在 Dalvik 虚拟机中运行
Qt on Android - does the C++ code run in the Dalvik virtual machine
我听说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 运行时
相关文章:
- OpenGL 在 VMWare Fusion 版本 10.1.3 上安装的虚拟机 (Ubuntu 16.04) 上崩溃
- 二叉搜索树 - 使用 Linux 在虚拟机中制作删除功能
- QT信号在虚拟机中不连接
- 如何将双精度类型的鼠标移动 x 和 y 从主机传递到 Qemu 中的虚拟机
- SQLITE错误:无法重置虚拟机
- C++如何检测您的应用程序正在运行的虚拟机已成为焦点
- SSE2 矢量化和虚拟机
- 在技术上是否可以创建 Java 虚拟机的映像文件并使用它来更快地启动 Java 应用程序
- LLVM是典型的虚拟机
- Jace:: 虚拟机关机错误
- 两个 C++ 可执行对象之间的实时数据通信,一个是 Windows 和另一个在虚拟机 Ubuntu 中
- 将临时对象保留在寄存器上以避免虚拟机中的额外存储/加载
- Delphi和C++类虚拟机兼容吗
- 对于虚拟机,哪种调度方法更有效
- NDK:0xdeadd00d时虚拟机中止和致命信号 11 (SIGSEGV) 的问题(代码 = 1)
- Qt on Android - C++代码是否在 Dalvik 虚拟机中运行
- modern.ie 从网站中提取虚拟机 JSON 数据
- 如何为虚拟机创建二进制文件
- Qt静态构建在虚拟机(win7 32位)上需要很长时间
- 存储变量的有效方法是什么?(自制虚拟机)