1、首先创建一个项目,在项目下面创建一个jni目录
2、然后添加一个native方法
3、然后进入cmd控制台进入当前工作的目录下面:
4、然后执行javah命令用来生成.h文件。(其中,D:\android\android_sdk_windows\platforms\android-19\android.jar,是android sdk目录下的目录文件,为了简单,可以把android.jar文件目录添加到path路径下;最后com.example.hellondk_1.MainActivity是包名加类名)刷新项目可以看到jni目录下多了一个.h文件
5、然后我们创建一个.c文件用来实现.h文件用定义的方法。创建一个.c文件导入相应的头文件(如:创建一个hello.c文件#include<stdio.h>#include<stdlib.h>#include"com_example_hellondk_1_MainActivity.h"JNIEXPORT jstring JNICALL Java_com_example_hellondk_11_MainActivity_getStringFromC(JNIEnv *env, jclass jclass){return (*env)->NewStringUTF(env, "Hello from C !....");}其中实现了头文件中的方法Java_com_example_hellondk_11_MainActivity_getStringFromC(JNIEnv *, jclass);)
6、在jni目录下添加mk文件。(这个可以导入ndk的实例下面的mk文件然后做修改就可以了)如下LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := helloLOCAL_SRC_FILES := hello.cinclude $(BUILD_SHARED_LIBRARY)其中,LOCAL_MODULE 表示编译生成的so叫什么名字LOCAL_SRC_FILES 表示要编译的.c文件是哪个
7、最后在项目路径下执行ndk-build命令。
8、执行完之后对项目进行刷新可以看到项目下面多了一个obj目录里面多了一个.so文件。然后在java文件中添加静态代码块。添加.so文件。
9、这里如果你用的是genymotion模拟器,那么需要对genymotion进行配置要安装一个genymotion arm translation,下载好之后直接拖拽就可以安装了。