Android NDK调用Java函数

时间:2018-11-28 13:24:07

标签: android android-ndk

我不确定是否可行,但是我正在开发本机Android程序,这是一个使用NDK调用Android API的Linux可执行文件。

此代码正常工作,并且在shell中运行Hello world的输出。

#include <iostream>
#include <jni.h>

using namespace std;

static JavaVM *g_VM;

int main() {
    cout << "Hello world!";

    return 0;
}

此代码甚至无法打印“ Hello world”

#include <iostream>
#include <jni.h>

using namespace std;

static JavaVM *g_VM;

int main() {
    cout << "Hello world!";

    JNIEnv *env;
    env->GetJavaVM(&g_VM);

    return 0;
}

这让我很困惑。

1 个答案:

答案 0 :(得分:0)

是的,这是正确的,但是如果您想学习更多,请访问开发人员网站并查看完整的文档Link。 Java代码由Android上的Dalvik VM运行。 Dalvik VM是专门为硬件资源(内存空间,处理器速度等)受限的系统而设计的。因此,如果您使用NDK进行系统控制是一种很好的方法,那么您应该改用Java。