1、第一步:在Activity里面生命一个native方法:
public class NdkActivity extends Activity {
//在静态代码块中加载C语言的库文件
/** 声明一个native方法 */
public native String helloFromJNI();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
2、在工程下创建jni包,里面创建.c文件,eg:hello.c:
#include<jni.h>
//env代表Java环境,通过这个环境了以调用Java方法
//谁调用了helloFromJNI(),obj就代表谁
jstring Java_cn_uc_NdkActivity_helloFromJNI(JNIEnv* env,jobject thiz){
return (*env)->NewStringUTF(env,"hello from C");
}
3、在jni包里创建Android.mk文件(copy):
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello//要新建的文件名
LOCAL_SRC_FILES := hello.c//源文件名
include $(BUILD_SHARED_LIBRARY)
4、在Cygwin里进入jni目录执行ndk-build命令
进入jni目录: cd /cygdrive/d/Android/ProTest/NdkTestActivity/jni/
5、------------------------------------------可以开始测试--------------------
6、在Activity里实现Button的点击事件
public void myButton(View view){
String s = helloFromJNI();//前面声明的native方法
Toast.makeText(this, s, 1).show();
}
7、运行该Android工程,如果正常toast则成功