Android项目使用外部.so

关于Android项目中使用外部编译好的library在网上也有些介绍,基本都是把相应的.so文件拷贝到android工程的 libs/armabi 目录中,其实这种方法不地道,而且很多时候满足不了要求,你无法在你的native code中使用这个.so中的features,因为你每次从新ndk-build的时候相应的lib目录会被更新,你拷贝进去的.so会被删除,编译不能完成。这种情况可以参考ndk-docs中的 PREBUILTS.html 。基本过程就是在jni目录下创建一个放置你要引入的.so的目录,然后写一个如下的Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := foo-prebuilt

LOCAL_SRC_FILES := libfoo.so

   include $(PREBUILT_SHARED_LIBRARY)


在你需要引入这个.so的Android.mk中加入如下内容,

include $(CLEAR_VARS)

LOCAL_MODULE := foo-user

LOCAL_SRC_FILES := foo-user.c

LOCAL_SHARED_LIBRARIES := foo-prebuilt

include $(BUILD_SHARED_LIBRARY)

当然可能还需要一些头文件的引入,那些就简单了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyszyz.html