0
点赞
收藏
分享

微信扫一扫

安卓SO层开发 -- 第一个NDK项目


0x01 新建项目

1、选择Native C++

安卓SO层开发 -- 第一个NDK项目_android

2、填写项目名称、项目位置等相关信息

安卓SO层开发 -- 第一个NDK项目_android_02

3、选择C++版本信息,默认即可

安卓SO层开发 -- 第一个NDK项目_android_03

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 运行效果

安卓SO层开发 -- 第一个NDK项目_jvm_04

举报

相关推荐

0 条评论