文章目录
一、创建支持 Kotlin 的 NDK 项目
二、Kotlin 语言中使用 NDK 要点
1、加载动态库
2、声明 ndk 方法
3、Project 下的 build.gradle 配置
4、Module 下的 build.gradle 配置
三、代码示例
1、Java 代码
2、C++ 代码
3、Project 下的 build.gradle
4、Module 下的 build.gradle
5、执行效果
四、GitHub 地址
一、创建支持 Kotlin 的 NDK 项目
点击 菜单栏 / File / New / New Project / Create New Project , 弹出以下对话框 , 选择 Native C++ 项目 , 点击 Next 按钮 ;
在后续对话框中 , 使用默认的 Kotlin 语言 , 即可生成 Kotlin 中使用 NDK 的代码 ;
默认 C++ 标准即可 ;
二、Kotlin 语言中使用 NDK 要点
1、加载动态库
Kotlin 中在类的 companion object 伴生对象 中加载动态库 , 类似于 Java 的静态代码块 ;
companion object { // Used to load the 'native-lib' library on application startup. init { System.loadLibrary("native-lib") } }
2、声明 ndk 方法
Java 中使用 native 声明 ndk 方法 , 在 Kotlin 中 , 使用 external 声明 ndk 方法 ; /** * A native method that is implemented by the 'native-lib' native library, * which is packaged with this application. */ external fun stringFromJNI(): String
ndk 方法对应的 C++ 方法 ;
#include <jni.h> #include <string> extern "C" JNIEXPORT jstring JNICALL Java_kim_hsl_ndk_1kotlin_MainActivity_stringFromJNI( JNIEnv* env, jobject /* this */) { std::string hello = "Hello from C++"; return env->NewStringUTF(hello.c_str()); }
3、Project 下的 build.gradle 配置
需要配置 Kotlin 版本号 , 和 Kotlin 插件版本号 ;
buildscript { ext.kotlin_version = "1.4.10" dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }