1.下载ndk工具,下载好如下
如果没有就点击下方的Download
2.动态加载库文件,新建native方法
3.切换到java文件夹下 执行以下命令生成.h头文件
其中../表示在当前目录的上一层目录即main目录,生成的头文件如下图所示:
4.在jni目录下新建c文件
内容如下:
其中粉色部分和红色部分的参数类型从h头文件中拷贝过来,其生成规则为Java_包名_方法名,切记要加上红色部分,默认拷贝过来是没有的,蓝色部分也必须引入,即头文件的全名
4.在jni目录下新建Android.mk 和Application.mk
其中mk文件为:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello
LOCAL_SRC_FILES := hello.cpp
include $(BUILD_SHARED_LIBRARY)
其中LOCAL_MODULE指定生成的so库的名字,LOCAL_SRC_FILES 指定编译的c或者c++文件
Application.mk文件中可以过滤生成的so库的cpu类型 ,如果不过滤写all即可
APP_ABI := all
5.此时进入jni目录,执行ndk-build
前提是配置了ndk环境变量,如果没配置执行ndk-build全路径,比如
通过上两步都可以生成so库文件,如下所示
6.在main目录下新建jniLibs,将libs中的文件全部复制过去,删除libs和obj
7.在APP的build.gradle中加入下图所示的内容
其中,红色部分为Android.mk文件中指定的so库的名字,必须一致