在Android中大多数是我们进行调用java语言调用c语言进行使用,而很少使用c语言进行回调java语言使用。在本篇主要介绍的是c语言调用java语言
1、创建一个项目,在项目中创建一个DataProvider类进行使用,代码如下:
package com.yoyoyt.encrypt;
/**
* 作者:刘净辉
* 日期:2017/6/1 17:34
*/
public class DataProvider {
static {
System.loadLibrary("hello");
}
/**
* C调用java空方法
*/
public void nullMethod() {
System.out.println("hello from java");
}
/**
* C调用java中的带两个int参数的方法
*
* @param x
* @param y
* @return
*/
public int Add(int x, int y) {
int result = x + y;
System.out.println("result in java " + result);
return result;
}
/**
* C调用java中参数为String的方法
*
* @param s
*/
public void printString(String s) {
System.out.println("java " + s);
}
// 本地方法
public native void callMethod1();
public native void callMethod2();
public native void callMethod3();
}
2、进行编译生成class文件,生成头文件步骤
(1)在Android Studio中的Terminal 视图下输入
cd D:\androidstudioproject\Encrypt\app\build\intermediates\classes\debug
(2)在这个下面输入如下命令
javah -classpath . -jni com.yoyoyt.encrypt.DataProvider
这样,我们的头文件生成出来,我们可以在\app\build\intermediates\classes\debug看见
3、查看类的方法签名
(1)在Terminal 输入如下命令
javap -s -p -classpath . com.yoyoyt.encrypt.DataProvider
(2)效果如下: