Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。例如,使用一些旧的库,与硬件、操作系统进行交互,或者为了提高程序的性能。JNI标准至少保证本地代码能工作在任何Java虚拟机环境下。
其工作原理相当于Java和C之间的中间桥梁。
下面先来介绍在eclipse中如何搭建jni开发环境
JNI环境搭建需要先下载android-ndk-r7b的软件包,然后在eclipse中选择
点击apply
然后新建一个Android工程
右键单击该
项目,选择
A
ndroi
d Tools --> Add native Support
输入生成动态库的名称
hello
点击工具栏上面的
然后选择刷新工程
在MainActivity中添加代码
package cn.zxw.jni1;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
public native String getString();
static {
System.loadLibrary("hello");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void click(View v) {
Toast.makeText(this, getString(), 1).show();
}
}
然后进入cmd命令,输入
刷新工程。进入jni目录下,开始编写hello.cpp文件。
#include <jni.h>
#include<cn_zxw_jni1_MainActivity.h>
JNIEXPORT jstring JNICALL Java_cn_zxw_jni1_MainActivity_getString
(JNIEnv *env, jobject jobj){
return env->NewStringUTF("调用jni");
};
运行项目即可。这是一个最简单的jni搭建,后续将会推出更多的jni开发内容