마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

동일한 native 함수가 호출될때, 이전 변수 유지할 수 없을까요?

0 추천
안녕하세요

NDK를 이용하여 안드로이드 어플을 만들다가 궁금한게 있어서 질문하게 되었습니다.

 

JAVA에서 native 함수가 호출되면, native libraray에서 해당 함수를 찾아 구동하게 되는데요,

예를 들어, A라는 native함수가 호출되어 그에 해당되는 native 함수가 실행되었고,

native 함수가 완료된 이후에, A라는 native 함수가 또다시 호출 되었을때,

native 함수에서 이전에 사용했던 변수를 다시 사용하는 방법이 없을까요?

 

Audiorecorder를 이용하여 소리를 녹음하여 주기적으로 native 함수를 호출하는데

호출할때마다 클래스를 선언하고, 그에 따라 매번 변수를 초기화하는 과정이 비효율적인것 같아서요

처음에 호출할때, 클래스를 선언하고 변수를 초기화하면,

이후에 호출되는 함수들은 그냥 바로 값을 이용하도록 만들고 싶습니다.

 

방법을 아시는 분은 혹은 실마리가 될 수 있는 단서들이라도 알고 계신 분이 있으시면

답변 부탁드립니다.
구르는돌맹이 (120 포인트) 님이 2013년 8월 27일 질문

1개의 답변

0 추천
C 쪽에서 클래스 같은 객체를  만들고 해당 포인터를 java에서 가지고 있고 JNI로 사용시에는

java에 설정한 포인터 값을  만들었던 객체로 캐스팅 해서 사용하면 됩니다.

안드로이드 미디어쪽 소스쪽을 살펴보면 비슷하게 구현된게 많습니다.

간단히 보실거면 AudioEffect.java , android_media_AudioEffect.cpp 소스를 살펴보세요.

native_init, native_finalize  부분 위주로 보시면 될 겁니다.
사악미소 (65,330 포인트) 님이 2013년 8월 28일 답변
답변 감사드립니다. 지금 당장 확인해 봐야 겠군요!!!
...