将已经实现的驱动移植到android平台后,需要将通过jni将接口封装。在这个过程中,有的c语言接口是通过回调的方式回传数据的。相当于java是被动调用的。
开始的时候,想着使用intent 广播实现,后来想想不对,这是java层的东西,不适用于jni的封装。后来使用interface,接口实现了jni层的回调的封装。
public interface testCallBack
{
public abstract int processCallBack(int callBackType);//这个地方一定要是抽象的方法,任何使用这个接口的类,需要对这个接口进行实现。
}
我们把这个接口定义当做c语言中的”函数指针“即可,概念类似。
c里面回调就是通过函数参数传递的方式,进行使用的。这里这个接口的方式一样。
public class testRegisterCallBack
{
static {
System.loadLibrary("test_jni");
}
public native int registerCallBack(params,...,testCallBack callback);
}