前面的NDK是弄的官方的,自己弄了一下,弄让他运行起来,今天来简单的写一个。
我是在Eclipse中开发的,创建一个NDKDemo项目,然后如下图:
在项目上–>右键–>Android Tools –>Add SuportLibrary 填入JNI名称
填写名称
在工程中会自动生成jni文件夹,有**.cpp和Android.mk文件
编写cpp文件(网上找的一段代码)
#include <jni.h>
#include <stdio.h>
#include <string.h>
extern "C" { JNIEXPORT jstring JNICALL Java_com_zhangqie_ndk_MainActivity_getString(JNIEnv* env, jobject obj)
{
return env->NewStringUTF("zhangqie"); } }
Activity代码
public class MainActivity extends Activity { /*
* 声明一个native方法
* 这个方法在Java中是没有实现的, 没有方法体
* 该方法需要使用C语言编写
*/
public static native String getString(); //静态代码块加载C语言库文件
static{
System.loadLibrary("zq");
} @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println(getString());
} public void btnJni(View v){
Toast.makeText(getApplicationContext(), getString(), 1).show();
} }
运行程序