您的位置:首页 > 移动开发 > Android开发

如何在JNI工程中使用第三方库文件

2016-07-15 11:01 267 查看
我们在开发android APP时经常需要调用第三方库文件,有的是以动态库的形式提供(.so),有的则是以静态库的形式提供(.a),这两种形式各有优势:

动态库是动态加载,只有用到的时候才会载入到内存;而静态库有较好的移植性,不依赖于其他系统库,所以适用于不同平台。

一般在android开发中一般是在一次编译中首先产生动态库或静态库,然后后续的编译中引用这些库,这种方式一般是把库放到固定的目录下,每次都会重新产生,外部复制进去的库文件会被清除,不能被使用。

那能否将第三方库随便放入到工程的某个目录下,编译时引用该库呢?答案是肯定的。

那如何书写Android.mk文件呢?

加入我们要引入第三方提供的动态库文件libtest.so,如何将该文件编译进去呢?

使用LOCAL_SHARED_LIBRARIES是将系统中的动态库加入的,例如:libz.so, libutils.so等;

引用第三方提供的库文件,假设libtest.so存放的目录是$(LOCAL_PATH)/abcd/libtest.so,那我们可以采用如下的方式加入:

LOCAL_LDLIBS += -L$(LOCAL_PATH)/abcd  -ltest

如果是静态库呢?

假如我们要把$(LOCAL_PATH)/abcd/libtest.a引入到工程中,可以采用如下的方式:

LOCAL_LDFLAGS += $(LOCAL_PATH)/libtest.a
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android jni ndk