NDK
开发工具下载
在模块级gradle
中指定NDK
版本
1 2 3
| android { ndkVersion "26.1.10909125" }
|
cmake
下载
在指定模块中创建cmake
构建脚本CMakeLists.txt
,并在模块级gradle
中指定cmake
构建脚本位置及cmake
版本
1 2 3 4 5 6 7 8 9 10
| android { externalNativeBuild { cmake { path file('src/main/cpp/CMakeLists.txt') version '3.22.1' } } }
|
创建一个cpp
文件,这个cpp
文件用于与java
建立连接,引入如下库
在cmake
构建脚本CMakeLists.txt
中,指定如下内容
1 2 3 4 5 6 7 8 9 10 11
| # 指定CMake的最低版本要求 cmake_minimum_required(VERSION 3.22.1) # 定义本地库名称 project("decoder") # 添加 decoder.cpp 共享库 add_library(${CMAKE_PROJECT_NAME} SHARED decoder.cpp) # 链接目标库到其他库 target_link_libraries(${CMAKE_PROJECT_NAME} android log)
|
在java
代码中引入本地库
1 2 3
| static { System.loadLibrary("decoder"); }
|
然后可以定义native
方法
1
| public static native int test(int num1, int num2);
|
通过Alt
+Enter
快捷键,可以在对应的c++
文件中创建对应的函数
1 2 3 4 5 6
| extern "C" JNIEXPORT jint JNICALL Java_xyz_xxin_silkdecoder_DecoderNative_test(JNIEnv *env, jclass clazz, jint num1, jint num2) { return num1 + num2; }
|
参考:https://developer.android.google.cn/ndk/guides?hl=zh-cn