#include <string.h>
#include <stdio.h>
#include <android/log.h>
#include <stdlib.h>
#include <jni.h>
JNIEXPORT jstring JNICALL Java_tangyuchun_ndk_hellojni_HellojniActivity_getString(
JNIEnv *env, jclass thiz) {
return (*env)->NewStringUTF(env, "Some say love");
//这里只是做个样例,所以只让他返回一段字符串 "Some say love"
}
注意,要给方法添加参数,头文件中只是声明,并没有实参。
7. 同样,在 jni 文件夹下面新建一个 Android.mk 文件,内容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.c
include $(BUILD_SHARED_LIBRARY)
那个LOCAL_MODULE 就是将要生成的.so 文件名,LOCAL_SRC_FILES就是第6步中编写的 .c 文件。
8. 保存上述文件,打开终端,定位到工程的目录下的jni 文件夹,在终端输入: ndk-build 命令,回车。
9. 返回到工程文件夹下,就会看到生成了两个文件夹 libs 和 obj,其中 libs/armeabi/ 文件夹下面就有 一个libhello-jni.so文件,这
个.so文件其实就是用来在android中调用C语言的类库;
10. 在Android虚拟机上运行上面建立的工程,如下所示: