我不确定是否可行,但是我正在开发本机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;
}
这让我很困惑。
答案 0 :(得分:0)
是的,这是正确的,但是如果您想学习更多,请访问开发人员网站并查看完整的文档Link。 Java代码由Android上的Dalvik VM运行。 Dalvik VM是专门为硬件资源(内存空间,处理器速度等)受限的系统而设计的。因此,如果您使用NDK进行系统控制是一种很好的方法,那么您应该改用Java。