1、引入依赖
compile 'net.java.dev.jna:jna:5.11.0'
2、封装工具类
public class SoUtil {
private interface SoLib extends Library {
String method(String param);
}
private static class SoLibImpl implements SoLib {
static SoLib INSTANCE;
static {
try {
// 也可以采用其他方法加载so库文件,或将so文件放在项目中
INSTANCE = (SoLib) Native.synchronizedLibrary((SoLib) Native.loadLibrary("/usr/local/lib.so", SoLib.class));
} catch (Exception e) {
// 异常处理
INSTANCE = null;
System.out.println("so库[/usr/local/lib.so]加载失败!");
}
}
@Override
public native String method(String param);
}
public static String invoke(String param) {
if (null != SoLibImpl.INSTANCE) {
return SoLibImpl.INSTANCE.method(param);
} else {
throw new RuntimeException("无法执行native方法,请检查so库文件是否存在!");
}
}
}



