Android2014. 7. 8. 19:52

안드로이드 NDK를 개발할 때 다른 기능 개발을 위해 따로 프로젝트를 나누거나 기존에 개발되어있는 NDK 라이브러리를 가져와서 쓰고 싶을 때가 있습니다.
이때 다른 프로젝트에서 개발된 .so 파일을 이용하여 프로젝트를 개발하려는 경우 빌드설정 방법에 대하여 공유합니다.

1) 개발하려는 프로젝트의 jni폴더에 다른 프로젝트에 개발된 .so파일을 넣어둘 폴더를 생성하고 생성한 폴더에 .so파일을 복사합니다. 그리고 라이브러리를 사용하기 위한 .h(해더파일)을 복사합니다.
2) .so파일을 복사한 폴더에 Android.mk파일을 만든후 아래와 같이 Android.mk에 입력합니다.

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libexttest
LOCAL_SRC_FILES := libexttest.so
include $(PREBUILT_SHARED_LIBRARY)

3)실제 NDK소스를 빌드할 폴더의 Android.mk 파일에 사용할 라이브러리를 명시해 줘야됩니다. 아래와 같이 입력합니다.
LOCAL_C_INCLUDES :=  $(call my-dir)/libexttest
LOCAL_LDLIBS := -L$(call host-path, $(PROJECT_PATH)/libexttest) \
               -lexttest

실제로 NDK 빌드가 정상적으로 된다면 성공한 것입니다. 여기서 중요한 것은 2)번의 include $(PREBUILT_SHARED_LIBRARY)입니다.

Posted by 위푸