Android 使用JNI的相关

Android 关于.so文件的导入和使用

  • .so文件的导入
  • .so文件的使用

.so文件的导入

1. 为设备所支持的CPU架构创建相应的lib目录
但是所有设备都能兼容armeabi-v7a这个架构,所以如果需要缩减apk大小,可以只保留armeabi-v7a这个目录。
最好还是能为该设备所支持的架构都创建对应目录,提升程序效率。
查询设备CPU信息方法:
adb shell
cat /proc/cpuinfo
但是,如果不确定支持的cpu架构是哪种,也可以全部都创建上,也不是不行,哈哈…。
比如下图所示:

在这里插入图片描述

2. 加载.so的java类所在目录
.so可能来自其它project,当要导入到一个新的project中进行使用时,需要注意:.so可能来自其它project,当要导入到一个新的project中进行使用时,需要注意:
调用System.loadLibrary(“libxxx.so”)的java类,所在的目录必须和之前project所使用的目录一致,否则会出现 java.lang.UnsatisfiedLinkError 此类的运行时异常。

3. 程序中加载.so

static {
        System.loadLibrary("upnp");
    }

4. build.gradle 文件修改

android {
	sourceSets.main{
	        jniLibs.srcDirs = ['src/main/jniLibs'];
	}
}

.so文件的使用

//Java类中,声明JNI方法。使用的地方,直接调用即可。
private static native void _start();
private static native void _stop();
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值