
一.NDK的安装
本文使用的是android studio 2.2.3安装NDK,自然所在环境是windows。
打开android studio的File | Settings | Appearance & Behavior | System Settings | Android SDK,选择SDK Tools,选中LLDB和NDK,点击确认,软件会自动安装NDK。如下图:

二.配置环境变量
--增加一项:NDK_ROOT,如:D:\Android\android-sdk-windows\ndk-bundle
--在path中增加%NDK_ROOT%


三.工程基本使用
在所在工程的src|main目录下新建文件夹jni

1.新建hello-jni.c
修改hello-jni.c文件中的函数名称,格式为:Java_包名类名函数名
( Java_me_jnidemo_myjnidemo_NdkJniUtils_stringFromJNI)
#include <string.h>
#include <jni.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: * * apps/samples/hello-jni/project/src/com/example/hellojni/HelloJni.java
*/
//jstring
//Java_com_bazhangkeji_MainActivity_stringFromJNI( JNIEnv* env,// jobject thiz )
//{
// return (*env)->NewStringUTF(env, "Hello from JNI !");
//}
JNIEXPORT jstring JNICALLJava_com_bazhangkeji_demo01_MainActivity_stringFromJNI(JNIEnv *env, jobject instance) {
// return (*env)->NewStringUTF(env, returnValue);
return (*env)->NewStringUTF(env, "Hello from JNI !");
}
2.新建Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.c
include $(BUILD_SHARED_LIBRARY)
3.在build.gradle中配置
配置好,make project即可生成.so文件在app\build\intermediates\ndk-build\debug\lib中。
增加语句:
externalNativeBuild {
ndkBuild {
path file("src\\main\\jni\\Android.mk") }
}
4.java层调用

网友评论