안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요...
안드로이드 앱을 개발하는데, JNI를 사용하거든요...
그런데 JNI로 만든 함수에서 넘겨주는 파라미터가 너무 많아서,,,,
java에서 class로 만들어서 멤버값들을 넣은다음에 JNI로 class자체를 넘기고
C에서 받아서 사용하고 싶은데 어떻게 써야할지 잘 모르겠네요 ^^
아시는분 있으면 답변 좀 부탁드려요 ^^;
안드로이드 앱을 개발하는데, JNI를 사용하거든요...
그런데 JNI로 만든 함수에서 넘겨주는 파라미터가 너무 많아서,,,,
java에서 class로 만들어서 멤버값들을 넣은다음에 JNI로 class자체를 넘기고
C에서 받아서 사용하고 싶은데 어떻게 써야할지 잘 모르겠네요 ^^
아시는분 있으면 답변 좀 부탁드려요 ^^;
2011.01.22 21:25:54
질문이 작년이지만.. 저두 JNI 땜에 요즘 고생이라 그냥 지나칠수없어 몇자 끄적거려볼게여~
native 매서드 만드실때 원하시는 값들이 셋팅 된 클래스를 인자로 넣어주시면 됩니다
java-> public native void 네이티브매서드명(원하는 클래스) <- 대충 이런 형태가 되겠지요
이런후에 C에에서 저 매서드는 인자가 하나 더 생성되어 만들어질거예요 jobject 형으로
이를 받아서 사용하시면 무난하실거라 생각됩니다.. 넘겨받은 클래스의 맴버 변수나, 함수도 물론 사용가능하고요 값을 셋팅한 변수라면 그값들도 jint, jdouble 등의 값으로 얻으실수있구요.. Get<데이터형)Field 이란 함수로 말이지요;;
시간이 꽤나 지나서 해결하셨을테지만....
수고하세요~