一、项目创建
创建NDK项目有两种方式,一种从新创建整个项目,一个在创建好的项目添加NDK接口。
1.创建NDK项目
创建 一个Native C++项目:
选择包名、API版本与算法交互的语言:
选择C++版本:
创建完之后,可以在项目中看到一个jni或者cpp的目录,目录包含一个CMakeLists.txt文件一个xxx.cpp文件:
2.添加NDK项目
在main目录添加一个目录,可命名为cpp或者jni都行:
把创建好的目录转化为JNI交互目录:
转化成功之后,目录下包含一个CMakeLists.txt文件一个xxx.cpp文件:
3.添加NDK依赖
选择使用的NDK版本:
选择CMake版本:
把下载好的NDK添加到配置文件:
4.测试与使用
添加类Java交互类:
在java交互类里面接口与jni交互的API:
package com.example.docscan;
public class scanlib
{
public native String stringFromJNI();
// Used to load the 'docscan' library on application startup.
static {
System.loadLibrary("docscan");
}
}
在xxx.cpp里面实现函数功能:
extern "C" JNIEXPORT jstring JNICALL
Java_com_example_docscan_scanlib_stringFromJNI(
JNIEnv* env,
jobject /* this */) {
std::string hello = "Hello from C++";
return env->NewStringUTF(hello.c_str());
}
在MainActivity类里面调用函数:
public class MainActivity extends AppCompatActivity {
private ScanLib scan_lib = new ScanLib();
private ActivityMainBinding binding;
@Override
protected void onCreate(Bundle