Java和C/C++混编技术是一种常用的开发技术,目的是使用C/C++弥补Java在高性能计算方面的不足。如Android的Native开发,我们经常是使用Native代码来处理一些复杂的计算,比如图象处理。实现Java/Kotlin和C/C++通讯的接口叫Jni,下面我们来看一下Jni接口的基本用法。
1. Java/Kotlin调用C/C++方法
首先在Java/Kotlin中声明一个Native的空方法
package com.test.native;
public class Main {
//Java: 使用native关键字声明
public native String getString(int index);
//Kotlin: 使用external关键字声明
public external fun getString(index: Int): String
}
然后,在使用这个方法之前,如果你的C/C++库是动态的so库,那么必须提前在静态代码块中加载Native库,例如:
//Java: 在类的静态代码块中加载
static {
System.loadlibrary("native-lib");
}
//Kotlin: 在伴生对象的初始化代码块中加载
companion object {
init {
System.loadlibrary("native-lib")
}
}
参数名表示库的名称,这