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

java에서 c계열 코드를 불러와서 쓸 수 있도록 만든 것이 native 라면

0 추천

그 native 내부 코드를 제가 볼 수는 없나요? 현재 분석중인 코드에 int로 초기화한 변수에 메서드 값을 넣는다고 되어있는데, 그 메서드를 타고 들어가면 native가 나와서 코드가 어떻게 흘러가는지 알수가 없습니다. 메서드의 return 값이 int라는것 외에는 알수있는게 없네요.. native 내부 코드가 어떤 코드인지 전혀 모르겠어서 진도가 안나가고 있습니다. 본사가 외국에 있는 코드라 주석도 영어나 중국어로 되어있고 그냥 변수가 어떤걸 의미하는지 정도만 대충 적혀있습니다

/*
a : ~~~number
b : not used
c : callback function pointer
*/

public native static int Example(int a, long b, ...);


요런식으로 (조금..싸가지없게...ㅠ)주석이 달려있습니다.
코드는 회사코드라 올릴수가 없습니다...


혹시 제가 말한 부분중에 틀린 부분이나 native 내부코드를 볼 수 있는 방법을 알려주신다면 정말정말 감사하겠습니다ㅠㅠ 아니면..안된다라고...알려주십시오ㅠㅠㅠ

yeonu.qwerty (320 포인트) 님이 2023년 6월 26일 질문
yeonu.qwerty님이 2023년 6월 27일 수정

1개의 답변

0 추천
 
채택된 답변
so파일만 달랑 받은거면 불가능하고, c 코드가 있다면, jni naming rule에 해당하는  c 함수를 보시면 됩니다.

https://caliou.tistory.com/269
예를 들어서 말씀해주신 값을 기준으론, 아래와 비슷한 값입니다.
jint Java_<com_mypackage>_<class>_Example(JNIEnv* pEnv, jint am jlong b, ...)
익명사용자 님이 2023년 6월 28일 답변
yeonu.qwerty님이 2023년 6월 28일 채택됨
so파일만 수두룩 빽빽 받았으니.. 안되는것이겠네요.....정말 감사합니다!!!
...