PC端强大的ps功能,现如今移动端也逐渐实现了,这得益于调用了C/C++这么强大的库。其处理效率,安全度都是java无法比拟的。
什么是jni?
是 Java Native Interface缩写,即java本地接口。java通过这个协议就可以调用外部的C/C++方法。JNI 是属于 Java 的,与 Android 无直接关系。
什么是NDK?
是Native Develop Kit缩写,即本地开发工具包。就是官方让jni转正的结果,更加方法开发者调用C/C++功能。NDK是属于 Android 的,与Java并无直接关系。
配置NDK,运行helloword,此处选择CMake配置方法 (另外有model配置方法)
首先在SDK Tool中安装CMake
image.png
选择项目支持C/C++
image.png image.png
生成项目目录结构:
image.png最简单的native方法实现
extern "C"
JNIEXPORT jstring JNICALL
Java_com_example_ndkdemo_ndkdemo_MainActivity_stringFromJNI(
JNIEnv *env,
jobject /* this */) {
std::string hello = "Nice to meet you";
return env->NewStringUTF(hello.c_str());
}
public class NdkFilter {
static {
System.loadLibrary("native-lib");
}
public static native String stringFromJNI();
}
什么都不干,直接走一个:
helloworld的结果
网友评论