简单的使用so文件

在一些项目中,有可能会看到项目使用或者依赖到so文件,那么so文件是什么呢?

so文件是unix的动态链接库,是二进制文件,作用相当于windows下的.dll文件。在安卓项目中,调用动态库文件(*.so)都是通过jni的方式,加载so文件提供的api。

在我所碰到的项目中,一般都是使用第三方硬件交互的场景用得到so文件,当然也有其他场景用的到的,只是我暂时还没有接触到的。这里着重介绍一下简单的使用so文件的方法。

使用步骤:

   1、先将第三方硬件商提供的so文件全部拷贝到安卓项目中的libs文件下。

   2、将硬件商提供的一些写好的api文件放入到原包名的文件下,如果没有原包名,就自己创建一个,检查api文件中是否有System,loadLibrary("XXXX"),没有的话就需要加上,一般可以添加在api里,也可以在mainactivity中

   3、加入权限

   4、在build.gradle文件中android的{}中,加入

task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") {
    destinationDir file("$projectDir/libs")
    baseName "Native_Libs2"
    extension "jar"
    from fileTree(dir: "libs", include: "**/*.so")
    into "lib"
}

tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
   5、编译项目,编译好了之后,在libs下面文件下面就会多出一个jar文件。这个时候就编译成功了,剩下的就可以开始使用api中的方法了。
 
在整个使用过程中,要比较注意so文件是放在libs下面,api的文件需要跟原包名一样的,因为在so文件里面编译的,就已经把原包名编译进去了。换了包名的话api就调用不到so文件里面的方法了。
 
结束语:以上操作都是我自己操作过的,不过只是适用初学者,有些什么问题的话,请联系我更正,谢谢了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值