cocos2d-x JNI를 가지고 android에서 Native Code(C/C++) < - > Java 양방향 호출해보자
cocos2d-x에 JIN를 사용해서 C/C++ <-> Java 양방향 호출을 알아보기 전에 간단하게 JNI가 무엇인지 리서치 해본 것을 먼저 정리해보겠습니다. Java에서 특정 플랫폼에서 실행 가능한 네이티브 코드에 접근하기 위해 만들어진 API를 JNI(Java Native Interface)라고 합니다. Java에는 이미 많은 모듈들이 있지만 이것으로는 구현할 수 없거나, 조금더 Low Level단 Hardware접근이나 Performance를 요구할 때 해당 플랫폼에 종속된 언어, 예를 들자면 C/C++ 로 구현 된 모듈에 접근할 때 사용한다고 하네요. cocos2d-x에서 JNI를 사용해야 할 때는 언제일까요? 먼저 Java에서 C/C++ 로는 뭐가 있을까요? In App Purphase에 대한 정보를 Java에서 게임에 반영할 때라던지 디바이스의 특정 정보를 게임으로 넘겨줄 때 등등이 그렇겠네요. 반대로 C/C++ 에서 Java로의 예는 어떤 외부 광고 모듈이 Android용 Java와 iOS용 Objective-C로 만들어져 있을 때 cocos2d-x가 그렇듯 개발중인 프로젝트에 중간에 C/C++ 로 매핑시켜 iOS에서는 Objective-C가 Android는 Java가 호출 되도록 할 수 있겠네요. 자이제 cocos2d-x의 Helloworld 샘플에 JNI를 사용하는 간단한 샘플을 적용해 보겠습니다. 먼저 Java -> Native Code(C/C++) Call 입니다. cocos2d-x의 HelloWorld 샘플을 이클립스로 열어 src -> org.cocos2dx.application의 ApplicationDemo.java를 엽니다. public class ApplicationDemo extends Cocos2dxActivity{ private Cocos2dxGLSurfaceView mGLView; pro...