前言
Android studio工程中经常会用到native 方法,方法之一是在libs文件夹中引入so文件,这样需要用到native方法的类直接调用如下方法加载库即可:
System.loadLibrary("test-lib");
如果不想引用so文件,想要直接在AS中实现native方法也是可以的。此时需要在项目中添加cpp文件,且需要做相关的配置,下面详细说明。
概述
环境准备
要想在AS中编译cpp文件,则需要下载NDK和安装cmake工具,否则无法使用。
NDK和cmake的安装很简单,AS中直接就可以处理,操作如下:
Tools->SDK Manager->Android SDK->SDK Tools
按如上点击,找到SDK Tools,就可以看到一系列的工具供安装,如下图是已经安装了NDK和Cmake的。
创建cpp目录以及cpp文件
在如下目录创建cpp文件夹:
mkdir app/src/main/cpp/
接着在该目录下创建cpp文件:
在此命名cpp文件名为test.cpp,并添加如下内容:
#include <jni.h>
#include <string.h>
JNIEXPORT jstring JNICALL Java_com_xxx_yyy_MainActivity_startTestJni(
JNIEnv *env,
jobject thiz) {
char *hello = "hello test...";
return env->NewStringUTF(hello);
}
如上com_xxx_yyy为包名,而MainActivity则是表示在MainActivity类中使用native方法。
每个类对应一个native文件,有一一对应的关系,这里需要注意。