第一、通过eclipse新建一个工程名为HelloJni的android工程,并编译。
第二、右键工程-->Android Tools --> Add Native Support,出现如下界面,名字默认就可以了,点击finish。
第三、我们在MainActivity类中加入要调用的native代码
public native String stringFromJNI();
以及加入我们要调用的lib库,名字就是上面图中的名字了。
static { System.loadLibrary("HelloJni"); }
第四、用eclipse编译工程,使其在工程bin/classes目录下生成class文件
然后在工程根目录的src执行
javah -d ../jni com.example.hellojni.MainActivity
其中-d 表示生产目录,这时候jni目录会生产com_example_hellojni_MainActivity.h头文件。
在jni目录下创建com_example_hellojni_MainActivity.c文件,并实现stringFromJNI方法
#include <string.h> #include <jni.h> #include "com_example_hellojni_MainActivity.h" /* This is a trivial JNI example where we use a native method * to return a new VM String. See the corresponding Java source * file located at: * * src/com/example/hellojni/MainActivity.java */ jstring Java_com_example_hellojni_MainActivity_stringFromJNI(JNIEnv *env, jobject this) { return (*env)->NewStringUTF(env, "Hello from JNI !"); }
将com_example_hellojni_MainActivity.c添加到jni的Android.mk中,同时删除HelloJni.cpp文件
最后我们添加Toast来显示stringFromJNI返回的文本。
Toast.makeText(getApplicationContext(), str, 90000000).show();
OK,接下去就是编译安装包看下效果了。
工程源码下载:
http://files.cnblogs.com/chuanwei-zhang/HelloJni.zip
最后附上一篇非常不错的文章:http://www.cnblogs.com/eddy-he/archive/2012/08/08/2628676.html