我正在移植PC OpenGL应用程序的Android上。 我选择使用NDK android_native_app_glue框架的东西。 我的理解,这将允许我留在C ++写甚至没有单一的Java代码行。 它听起来前途。
首先不清楚的事情对我来说,数据的保存/载入。 我的应用程序的数据格式是二进制和我原来的PC相关的代码使用普通的“stdio.h中”文件操作:FOPEN,FREAD,FWRITE等创建,写和从“mygame.bin”文件中读取。 我该如何将它移植到Android的?
已经GOOGLE了它,我发现我必须存储,然后使用“Java环境”变量:
JNIEnv *g_jniEnv = 0;
void android_main(struct android_app* state) {
g_jniEnv = state->activity->env;
}
不过,我还是不知道如何使用此g_jniEnv进行文件操作。
更新:好吧,我发现,在Java中,数据保存可进行如下:
String string = "hello world!";
FileOutputStream fos = openFileOutput("mygame.bin", Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
所以我的问题是:给出一个指向JNIEnv的,我怎么重写C ++这段代码?