PCOpenGLアプリケーションをAndroidに移植する作業をしています。私はそのNDKandroid_native_app_glueフレームワークのものを使用することを選択しました。私が理解したように、それは私がC ++にとどまり、Javaコード行を1つも書かないことを可能にするでしょう。そしてそれは有望に聞こえた。
私にとって最初の不明確なことは、データの保存/読み込みです。私のアプリケーションのデータ形式はバイナリであり、元のPC関連のコードはプレーンな「stdio.h」ファイル操作(fopen、fread、fwriteなど)を使用して「mygame.bin」ファイルを作成、書き込み、読み取ります。Androidに移植するにはどうすればよいですか?
グーグルで検索したところ、「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 ++で書き直すにはどうすればよいですか?