一、JNI(Java Native Interface)
二、JNI 使用
- android studio 环境下
- Java 声明
package com.myjni;
public class LeanJNI{
static {
System.loadLibrary("first-lib"); // 加载本地库“first-lib”
}
// 1.使用【native】关键字申明本地方法,该方法与用C++编写的JNI本地函数相对应。
public native void helloJNI();
public native String helloJNI2();
}
- C++ 声明
extern "C"
JNIEXPORT void JNICALL Java_com_myjni_LeanJNI_helloJNI(JNIEnv *env, jobject obj) {
printf("Hello JNI!");
return;
}
JNIEXPORT jstring JNICALL
Java_com_myjni_LeanJNI_helloJNI2(JNIEnv *env, jobject obj, jstring str) {
std::string strNew = "返回字符串!";
return env->NewStringUTF(strNew.c_str());
}
- 最终调用
LeanJNI myJni = new LeanJNI();
if (myJni != null)
Log.i("hello: ", myJni .helloJNI2());