0x01 新建项目
1、选择Native C++
2、填写项目名称、项目位置等相关信息
3、选择C++版本信息,默认即可
0x02 项目源码结构介绍
1、编译后生成的so文件名称
static {
System.loadLibrary("a2022ndk");
}
2、声明的so层的函数
public native String stringFromJNI();
3、在Java层调用
tv.setText(stringFromJNI());
4、在C层的代码实现
#include <jni.h>
#include <string>
extern "C" JNIEXPORT jstring JNICALL
Java_com_example_a2022ndk_MainActivity_stringFromJNI(
JNIEnv* env,//与java层交互必须添加这两个参数
jobject /* this */) {
std::string hello = "公众号:编程者吧";//C++中的字符串
return env->NewStringUTF(hello.c_str());//将c++字符串转换成C字符串,然后通过NewStringUTF转换为java层的字符串
}
0x04 运行效果