我们在使用ndk的时候,有时候可能会使用到第三放提供的so和头文件。一般他们是提供对外暴露的接口,供开发者去开发。
这里我举个例子,看看如何在Eclipse环境下使用第三方的so。
第三方的提供:
|___libXyun.so
|___Xyun
|__HeaderA.h
|__HeaderB.h
我们要基于这个so和两个头文件做自己的事情。需要在android.mk中添加对他们的引用。
首先,需要把他们拷贝到工程的jni目录中。最后结构如下:
jni
|___libXyun.so
|___Xyun
|__HeaderA.h
|__HeaderB.h
然后修改android.mk
#####添加对库的引用#######
include $(CLEAR_VARS)
LOCAL_MODULE := libXyun #名称
LOCAL_SRC_FILES := libXyun.so #so的路径
include $(PREBUILT_SHARED_LIBRARY)
LOCAL_SHARED_LIBRARIES := libXyun
#####加入头文件#########
LOCAL_C_INCLUDES += $(LOCAL_PATH)/Xyun/ #头文件所在的目录
基本上这样就OK了。
TIPS
用Eclipse写jni代码,没有什么提示功能,用ANDROID studio编写比较舒服,有代码提示。所以建议:在studio中写代码,然后用mk去链接编译。
// TODO
Android Studio 2.2之后对jni的编写支持也好多了,有了CMake,使用起来也比较方便。CMakeList中怎么去使用,我还没有摸清楚。以后再加。估计会了之后,用CMake也会很方便。