这次项目中的大部分代码是写在NDK层的,并通过jni相关函数封装成一个个jni函数接口。然后在java层,通过以下这样一个NDKController类封装所有jni函数接口,供其它java代码直接调用。
public class NDKController{
static{
System.loadLibrary("libnameA");
System.loadLibrary("libnameB");
System.loadLibrary("libnameC");
System.loadLibrary("NdkLibName"); //上述libnameA,libnameB, libnameC库都是被NdkLibName库用到的更底层的库
System.loadLibrary("JniLibName");
}
... ...
... ...
... ...
public native long NdkFunc1( ..., ..., ... );
public native long NdkFunc2( ..., ..., ... );
public native long NdkFunc3( ..., ..., ... );
... ...