1.使用NDK来生成so文件:
hello-jni.c
#include <string.h>#include <jni.h>jstringJava_org_yhn_demo_HelloJni_stringFromJNI( JNIEnv* env, jobject thiz ){ return (*env)->NewStringUTF(env, "Hello from JNI !");}
函数名Java +包名+函数名字
2.修改Android.mk文件
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := hello-jniLOCAL_SRC_FILES := hello-jni.cinclude $(BUILD_SHARED_LIBRARY)LOCAL_SRC_FILES :=hello-jni.c 指定c++文件
3.编译so文件
4.调用so文件
so文件copy到android项目的libs/armeabi目录下
package org.yhn.demo;public class HelloJni{ public native String stringFromJNI(); static { System.loadLibrary("hello-jni"); }}
最后输出一下结果:
String s = new HelloJni().stringFromJNI(); Utils.debug(s);
