1.首先设置三个External Tools
设置路径:Settings->Tools->External Tools
(1)头文件生成工具
Name: javah
Program: $JDKPath$/bin/javah
Parameters: -d jni -jni -classpath ..\..\build\intermediates\classes\debug $FileClass$
Working directory: $ModuleFileDir$\src\main
(2) ndk-build
Name: ndk-build
Program: E:\soft\android-ndk-r10e\ndk-build.cmd
Parameters:
Working directory: $ModuleFileDir$\src\main
(3) ndk-build clean
Name: ndk-build clean
Program: E:\soft\android-ndk-r10e\ndk-build.cmd
Parameters: clean
Working directory: $ModuleFileDir$\src\main
2.写一个java类 生成native方法
public class NdkTest
{
static {
System.loadLibrary("NdkTest");
}
public static native String getString();
}
3.根据生成的本地方法类NdkTest,使用头文件生成工具生成头文件
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
#ifndef _Included_com_sm_android_ndkdemo_NdkTest
#define _Included_com_sm_android_ndkdemo_NdkTest
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jstring JNICALL Java_com_sm_android_ndkdemo_NdkTest_getString
(JNIEnv *, jclass);
#ifdef __cplusplus
}
#endif
#endif
4.根据头文件创建cpp类
JNIEXPORT jstring JNICALL Java_com_sm_android_ndkdemo_NdkTest_getString
(JNIEnv * env, jclass jc){
return env->NewStringUTF("Hello word !!!");
}
5.设置Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := NdkTest
LOCAL_SRC_FILES := NdkTest.cpp
include $(BUILD_SHARED_LIBRARY)
6.设置Application.mk
APP_MODULES := NdkTest
APP_ABI := all
7.执行ndk-build工具生成so库就可以执行本地方法了,返回
Hello word !!!