在Android上移植Qt代码及其工作原理

Rah*_*sin 7 c++ java port qt android

我在考虑将我的Qt应用程序移植到android上.

我的问题是如何用C++编写的代码和Qt也是一个C++库被移植到android,因为android需要java代码,需要一个apk文件才能在设备上安装app.我很好奇他们如何以及他们在代码上做了什么以使其像java代码一样工作.

如果问题不明确,请发表评论,我会尽力使其更清晰.

Nej*_*jat 5

Android应用程序是Java应用程序,在名为"Dalvik"的虚拟机上运行.这对Qt/C++应用程序在这样的基于Java的平台上运行带来了许多挑战.为了解决这个问题,Android应用程序的Qt有两个部分.第一部分是您的Qt/C++本机应用程序,由qmake组织.第二部分是启动器,它是由Qt Creator根据您的应用程序首选项,设置和目标Android版本自动生成的Java代码.

启动程序是一个Java进程,因此Qt Android应用程序具有基于Java的入口点.启动程序中的Java代码将根据模板中其他文件中提供的元信息加载所需的Qt库.因此,当启动Qt for Android应用程序时,它只是一个普通的Java应用程序.入口点会在QtActivity.java其下可以找到android/src/…在你的项目构建目录.

加载Qt库后,Java代码将在新线程上启动应用程序的本机main()函数,并启动应用程序.此时,Java代码用于将事件从Android委托给Qt.Qt for Android应用程序使用"Java Native Interface"(JNI)在Java世界和C++世界之间进行通信.