네이티브 액티비티로 게임어플을 만드려는 사람입니다. NDK의 샘플과 똑같이 native_activity_glue 를 사용하고 있습니다. 네이티브 액티비티의 기본적인 구조는 static void android_main(); 이라는 함수를 안드로이드 apk(내부적으로는 glue에서 호출)에서 콜하게 되어있는 것 같은데요.
저 함수에 초기화 루틴이 있지 않고 대신에 android_app 이라고하는 객체를 넘겨받더군요. 더군다나 포커스를 잃었을때라던가 저 android_app에 항상 데이터의 포인터주소를 보내놓고 저 android_main을 진입할때 다시 그 포인터주소를 받는 과정이 있던데요... 혹시 데이터가 유지가 안되는건가요?
저는 왜 그렇게 해야되는지를 잘 모르겠습니다... 그렇다고 항상 다시 재초기화해주거나 방대한 양의 데이터를 일일히 담을 수는 없잖아요. 만일 단지 언어적인 이유로 C에서 지역변수를 보존하기 위해서 저렇게 할리는 없을 것 같고...
왜 포인터를 담아야하는지를 잘 모르겠습니다. 더군다나 담는것이 실제 메모리가 아니라 포인터라면 재접근시에 내부적으로는 아직 할당되어있는 그 자체라는 이야긴데 왜 그걸 저런식으로 보존해야하는걸까요.