Android NDK开发之引用纯C库文件

       安卓的串口通信及涉及到一些底层数据交互时经常会使用NDK开发。假设你正在做的项目中需要引用一个第三方的C库文件(.so动态库文件),首先判断这个C库是否符合android中规范的JNI标准。

1.如果符合JNI标准,我们就不需要另外写jni文件,而是直接导入库文件(创建jniLibs文件夹,创建不同的平台,将库文件放入),如下:

然后在应用层加载这个库并调用其中的方法即可,调用的方法必须先用native定义,如下:

2.如果你拿到的C库不是一个符合JNI标准的,那么就需要再写一个JNI文件封装一层。首先我们要正确引入这个库文件(这里用.so动态库文件),在main目录下创建命名为jni的文件夹,将.so库文件放入:

将C库的头文件放在jni文件夹下,或者创建一个include文件夹,将头文件放入,两者的差别是在.mk文件中配置的路径不同而已。在jni目录下创建Android.mk文件,并在该文件中进行配置:

 

 4、5、6行是第三方库文件的文件名称位置等信息,11、12行是封装成jni文件后生成的库名称,13、14行是在封装过程中涉及到的源文件,15行为说明引用具体的第三方库。

在module的build.Gradle文件中android下配置:

externalNativeBuild {
    ndkBuild {
        path "src/main/jni/Android.mk"
    }
}

在defaultConfig中添加生成的库平台:

ndk {
    abiFilters "armeabi","armeabi-v7a"
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值