나는 PC OpenGL 응용 프로그램을 Android에 이식하려고합니다. 그 NDK android_native_app_glue 프레임웍을 사용하기로했습니다. 내가 알기로는, 그것은 C++에 머 무르며 단일 JAVA 코드 라인도 작성하지 못하게한다. 그리고 그것은 유망한 것으로 보였다.android ndk data save/load
나에게 처음으로 불투명 한 것은 데이터 저장/불러 오기입니다. 내 응용 프로그램의 데이터 형식은 바이너리이며 원래의 PC 관련 코드는 일반 "stdio.h"FILE 연산을 사용합니다 : fopen, fread, fwrite 등은 "mygame.bin"파일을 만들고 쓰고 읽습니다. Android에 이식하는 방법은 무엇입니까?
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++에서?
"경로 밖에서는 앱에 파일 시스템 권한이 없습니다." 반드시 필요한 것은 아니지만 앱에 외부 저장 권한이 있는지 여부가 가장 분명합니다. –
긴 날이 끝날 때'internalDataPath'에 의해 저장됩니다. 건배. –