配置好jni运行环境,就可以写程序了,记录一下第一个小程序,java native方法调用c方法,并且返回值:
java代码:
public class JNI {
/**
* 加载动态链接库
* 也就是c代码编译好的so文件
*/
static {
System.loadLibrary("app");
}
public native String saySomething();
}
C代码:
#include "sayWhat.h" /** * *env: java虚拟机指针 * obj : 调用此方法的java类的实例 */ JNIEXPORT jstring JNICALL Java_com_example_jnidemo_JNI_saySomething(JNIEnv *env, jobject obj){ //C语言定义字符串 char *cstr = "android studio is big bug ,so troublesome"; //NewStringUTF函数:将C语言字符串转换为java的字符串 return (*env)->NewStringUTF(env,cstr); }