Windows下用QtCreator和C++写Android程序-下

本文介绍了如何在Windows环境下使用QtCreator和C++编写Android应用程序。通过JNI作为Java和C++的接口,详细讲解了从配置环境到调用Java功能的步骤,包括获取JavaVM和JNIEnv,以及如何调用Java方法。虽然过程涉及较多JNI细节,但通过封装函数可以简化代码。整个过程中并未编写任何Java代码,主要工作集中在环境配置、C++代码编写和UI设计上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上面的文章中,工程基本能编译了。但是在上面的情况下,C++的代码还不能起作用。要用到C++,必须用NDK中的JNI。JNI是Java和C++的接口层,用于在两种语言之间互相调用的。对于Java端,需要调用C++应该怎么办呢?这点我们不用操心,Google已经为我们做好了;我们是C++程序员,那么要调用到其他模块的功能,我们知道,首先一定要include某个头文件才行。所以,要用JNI去访问Java提供的功能,先加上一个

#include <jni.h>

由于我们先前已经配置过Android的SDK和NDK的路径,所以这里直接加上include就应该能找到这个头文件,如果找不到说明配置的不对,需要仔细检查一下上面的配置。
加上头文件后,基本就可以写C++的功能代码了。但是在写代码之前,我们要稍微了解一下Android系统程序的工作机制。我们知道在Windows系统上或Linux系统上,C++编写的程序都有一个入口函数main,操作系统调用我们的程序是从main函数开始的。那么在Android上,怎么使我们的C++功能代码被Android调用呢?有一点我们首先要知道,在Android系统上运行的每一个程序,都是在一个独立的java虚拟机上执行的,那么如果我们的C++代码要加入到这个程序的执行过程中,首先要得到Java虚拟机的执行环境。在NDK的框架下,Google给我们准备了两个对象处理这方面的工作

struct _JNIEnv;
struct _JavaVM;

它们的具体实现我们暂且不用关心,只要得到它们的指针,我们就可以在C++里调用Java的功能函数了。JNIEnv是从属于JavaVM的,只要得到JavaVM,我们就可以得到JNIEnv,然后通过

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值