안드로이드 개발 질문/답변
(글 수 2,584)
JNI 구현을 연습중인 학생입니다.
/android/frameworks/base/media/jni 경로에 보면 미디어에 관한 여러 JNI 코드들이 있는데요.
제가 따로 제가 제작한 어플에서만 적용되게 따로 API를 호출하여 수정하고 싶습니다.
이미 /android/frameworks/base/media/jni 경로에 구현되어 있는 안드로이드 원래의 JNI를 호출해서
변경하여 적용이 가능할가요? 호출방법이 궁금합니다.
추가적으로 이클립스상에서 안드로이드 코드까지 보기위해 classpath에 소스를 연결한 상태입니다.
이 코드를 제가 수정하려고 하니, 수정이 불가능하게 되어있네요. 제가 수정해서 적용할 수 있는 방법이 있을가요?
안드로이드 JNI에 대한 수정은 물론 가능합니다.
media쪽만 보실거면 stagefright 으로 인터넷 뒤지면 자료가 꽤 있습니다.
자세한 호출방법은 직접 framework source를 보면서 직접 공부하셔야 합니다.
media쪽은 framework 내부가 추상화(abstraction) 되어 있어서 눈으로만 보면
거의 분석이 불가능(특히 media parser ㅡㅡ;) 합니다.
logd 로 무식하게 log 찍으면서 하시던가,
gdb를 디바이스에 올려서 디버깅해야 실제 flow가 잡힙니다.
참고로 저는 source 분석은 windows에서 source insight로 하면서Android debugging/compile 은 Linux에서 했습니다.
이클립스는 만들어진 SDK test 할때만 썼음. ㅡㅡ;