Android NDK编译本地文件以及引用第三方so文件
2014-11-12 22:59
288 查看
引用第三方的so文件很简单,在工程目录的libs文件夹下新建文件夹armeabi,以及armeabi-v7a,然后将要引用的so文件分别复制到这两个
文件夹下就行了。但是有时候我们会使用第三方开源算法,或者本地的底层代码,那么在调用这些代码的接口时就需要将这些代码编译成so
文件,如果你使用的是cygwin事先将这些代码编译成so文件,然后将其复制到相应文件下那么不会有什么问题,但是如果使用的是android
自带的编译工具NDK进行编译时,armeabi以及armeabi-v7a文件夹下的第三方so文件将会被删除,只会产生编译后的so文件,其他的so文
件将无法引入,现在我们就来解决:在需要引入第三方的so文件的情况下,怎样使用NDK编译本地代码。
一、新建jni文件夹,将你要编译源码文件以及需要引入的so文件复制到jni文件目录下
二、编写android.mk文件,首先将你的将你的本地代码文件的android.mk部分的代码写好,然后在这部分后面添加需要引入的so文件的代码
如:
我们编写了本地的speex.cpp文件,但是还需要引入百度的定位SDK的so文件,首先我们编写speex.cpp文件的android.mk部分,然后在其
后添加上第三方so文件引入的android.mk部分。
的代码,然后将名字替换成那个so文件的名即可。
编写好了之后,我们编译工程,最后我们会在armeabi等文件夹中,看到两个so文件,libspeex.so以及liblocSDK3.so文件,如果你是直接
将需要引入的so文件导入到armeabi文件夹下,那么编译后你将只会看见libspeex.so文件。
参考链接:
/article/1948410.html
/article/9428092.html
文件夹下就行了。但是有时候我们会使用第三方开源算法,或者本地的底层代码,那么在调用这些代码的接口时就需要将这些代码编译成so
文件,如果你使用的是cygwin事先将这些代码编译成so文件,然后将其复制到相应文件下那么不会有什么问题,但是如果使用的是android
自带的编译工具NDK进行编译时,armeabi以及armeabi-v7a文件夹下的第三方so文件将会被删除,只会产生编译后的so文件,其他的so文
件将无法引入,现在我们就来解决:在需要引入第三方的so文件的情况下,怎样使用NDK编译本地代码。
一、新建jni文件夹,将你要编译源码文件以及需要引入的so文件复制到jni文件目录下
二、编写android.mk文件,首先将你的将你的本地代码文件的android.mk部分的代码写好,然后在这部分后面添加需要引入的so文件的代码
如:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := libspeex LOCAL_CFLAGS = -DFIXED_POINT -DUSE_KISS_FFT -DEXPORT="" -UHAVE_CONFIG_H LOCAL_C_INCLUDES := $(LOCAL_PATH)/include LOCAL_SRC_FILES := speex.cpp include $(BUILD_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := liblocSDK3 LOCAL_SRC_FILES := liblocSDK3.so include $(PREBUILT_SHARED_LIBRARY)
我们编写了本地的speex.cpp文件,但是还需要引入百度的定位SDK的so文件,首先我们编写speex.cpp文件的android.mk部分,然后在其
后添加上第三方so文件引入的android.mk部分。
include $(CLEAR_VARS) LOCAL_MODULE := liblocSDK3 LOCAL_SRC_FILES := liblocSDK3.so include $(PREBUILT_SHARED_LIBRARY)以上部分就是百度定位sdk的so文件引入时的android.mk部分的编写,如果你还需要其他的so文件呢,你只需要在这部分的后面再加上这样
的代码,然后将名字替换成那个so文件的名即可。
编写好了之后,我们编译工程,最后我们会在armeabi等文件夹中,看到两个so文件,libspeex.so以及liblocSDK3.so文件,如果你是直接
将需要引入的so文件导入到armeabi文件夹下,那么编译后你将只会看见libspeex.so文件。
参考链接:
/article/1948410.html
/article/9428092.html
相关文章推荐
- Android NDK编译本地文件以及引用第三方so文件
- Android NDK编译本地文件以及引用第三方so文件
- Android NDK编译本地文件以及引用第三方so文件
- Android NDK编译中在libs\armeabi中加入第三方so库文件的方法
- Android NDK编译中在libs\armeabi中加入第三方so库文件的方法
- 【Bootstrap】本地css样式放置的位置,以及jsp文件中如何引用样式
- Android ndk 使用第三方so和头文件编译
- ptlib编译时,会自动扫描电脑系统,找出头文件以及库文件并进行引用,生成头文件ptbuildopts.h
- android NDK编译多个so文件以及mk文件详解
- Android studio jni编译以及第三方so库的引用
- Android NDK 编译 引用第三方 so 文件
- Android NDK编译命令行程序,使用本地共享文件
- Cocos2dx如何引用第三方SO文件(Android NDK)
- Cocos2dx如何引用第三方SO文件(Android NDK)
- c++高级---C++声明、定义、类的定义、头文件作用、头文件重复引用,不具名空间以及编译器编译链接过程
- android下载编译以及文件系统提取总结
- android技巧:apk文件反编译以及签名打包
- Dos 下编译java文件引用到多个第三方jar时必须逐个指定到具体的jar,否则报找不到类型错误
- Flex快速入门系列之五:crossdomain.xml文件创建以及允许本地跨域访问远程资源
- android技巧:apk文件反编译以及签名打包(dex2jar&jd,apktool,apk-sign)