안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
JNI 사용시에 so파일 로딩이 단말기의 cpu를 보고서 armeabi, armeabi-v7a 둘중 하나를 로딩한다고 본것 같습니다.
혹 제가 잘못 알고 있을 수도 있습니다.
카메라관련 작업을 하던 중 Galaxy Nexus에서 이상한 현상이 있어 질문을 올립니다.
카메라 관련 api가 armeabi, armeabi-v7a 에 따라 구성이 되어 있는 것같습니다. 외부 업체 라이브러리여서 정확히 어떤 차이는 모르겠습니다.
그러나 Galaxy Nexus 단말에서 간단한 샘플에서는 armeabi-v7a의 so 파일을 로딩하여 정상 동작 함.
저희가 개발 중인 앱에서는 armeabi의 so 파일을 로딩하여 구현되지 않은 api호출로 crash발생. 그래서 개발중인 앱에서 armeabi 폴더를 삭제하고 테스트를 하면 정상 동작.
다른 단말에서는 괜찮은데, Galaxy Nexus ics에서만 발생을 하고 있습니다.
so 파일 로딩과 관련하여 앱의 메니페스트 등에서 설정이 되는 부분이 있는지요?
원인을 알수가 없어서 고수님들께 의견을 듣고자 질문드립니다.




jni 빌드시에 android.mk 혹은 application.mk 파일에서 타겟을 정할때
armeabi, armeabi-v7a 를 선택합니다. 툴체인 때문이죠..
빌드를 끝내면 .so .a 두가지형태로 나오게 되고 이걸 자바 혹은 c/c++ 에서 로딩하는데..
매니페스트는 퍼미션관련 말고는 관여하는게 없어 보입니다.