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

jni 의 jbytearray 질문 드립니다.

0 추천
jni 구현때문에 애를 먹는 개발자 입니다 .ㅠㅠ..

 

다름이 아니라 jbytearray 를 jni에서 구현해 사용하는 도중 메모리 릭이 발생해서요.

찾아보니까

 jdata = (*g_env)->NewByteArray(g_env, x_size);

(*g_env)->SetByteArrayRegion(g_env, jdata, 0, x_size, (jbyte *) data );

NewByteArray 요부분의 x_size가 크기가 너무 큰데다 사용빈도수가 너무 많아서 메모리 릭이 발생하는 것으로 파악됐습니다.

 

그래서 글로벌로

 

 jdata = (*g_env)->NewByteArray(g_env, 50000); //x_size
 jdata = (jbyteArray)(*g_env)->NewGlobalRef(g_env,jdata);

위와 같이 해서 메모리 릭이 나지 않는 것은 확인을 했는데 문제가 있습니다.

위에 임의로 집어넣은 50000이라는 값은 원래가 수시로 변하는 x_size 의 값입니다.

 

간략하게 질문 드립니다.

NewByteArray 를 사용하지 않고 jbytearray의 크기를 조정하는 방법은 없을까요?

살려주십시오 ㅠㅠ.
정상??인 (340 포인트) 님이 2016년 1월 18일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...