javah使用:帮助我们生成头文件的工具
怎样使用javah?
1.先在命令行下运行:javah。如果能执行java而不能执行javah,就需要配置环境变量。
2.cd进入到java的目录文件下,先用javac把.java文件生成.class文件。
3.在.class文件目录下执行javah,生成头文件(注意:.class文件要在相对应的包目录结构下)
如:用eclipse的工程,在bin/classes目录下com/devchina/ndk/DevActivity,需要在classes的目录下使用:
javah com.devchina.ndk.DevActivity生成.h文件
怎样使用javah生成的头文件?
通过javah生成的头文件为:包名+类名.h 的文件。
把.h拷贝到jni目录下,并根据.h中生成的内容,编写相应的.c文件。(注意:要在c文件开头include"*.h"文件)
然后再写Android.mk文件。通过Ndk进行编译,生成.so文件。
最后在相应的java类中,load相应的so文件。
例:
#include<stdio.h> #include<jni.h> #include"com_hd_ndk2_DemoActivity.h" JNIEXPORT jstring JNICALL Java_com_hd_ndk2_DemoActivity_hello (JNIEnv * env, jobject clazz){ return (*env)->NewStringUTF(env,"hello"); }