C中调用java代码,主要运用在C代码执行耗时操作时候来进行对UI的实时性的改变,比如做图像处理的时候,可能图像较大,处理时间较长,那么就可以通过这个技术来实时更新处理的进度,下面我们通过代码来看具体的实现。
1.MainActivity
public class MainActivity extends Activity {
JNI jni;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
jni = new JNI(this);
}
public void callbackvoid(View v){
jni.callbackvoidmethod();
}
public void callbackint(View v){
jni.callbackintmethod();
}
public void callbackString(View v){
jni.callbackStringmethod();
}
public void callbackshowtoast(View v){
jni.callbackShowToast();
}
}
2.JNI.java
public class JNI {
static{
System.loadLibrary("callback");
}
private Context mContext;
public JNI(Context context){
mContext = context;
}
public native void callbackvoidmethod();
public native void callbackintmethod();
public native void callbackStringmethod();
public native void callbackShowToast();
//C调用java空方法
public void helloFromJava(){
System.out.println("hello from java");
}
//C调用java中的带两个int参数的方法
public int add(int x,int y) {
return x+y;
}
//C调用java中参数为string的方法
public void printString(String s){
System.out.println(s);
}