PC端強大的ps功能,現(xiàn)如今移動端也逐漸實現(xiàn)了覆糟,這得益于調(diào)用了C/C++這么強大的庫。其處理效率滩字,安全度都是java無法比擬的。
什么是jni漓藕?
是 Java Native Interface縮寫,即java本地接口享钞。java通過這個協(xié)議就可以調(diào)用外部的C/C++方法诀蓉。JNI 是屬于 Java 的,與 Android 無直接關(guān)系交排。
什么是NDK?
是Native Develop Kit縮寫埃篓,即本地開發(fā)工具包。就是官方讓jni轉(zhuǎn)正的結(jié)果同窘,更加方便開發(fā)者調(diào)用C/C++功能。NDK是屬于 Android 的想邦,與Java并無直接關(guān)系委刘。
配置NDK,運行helloword锡移,此處選擇CMake配置方法 (另外有model配置方法)
首先在SDK Tool中安裝CMake
image.png
選擇項目支持C/C++
image.png
image.png
生成項目目錄結(jié)構(gòu):
image.png
最簡單的native方法實現(xiàn)
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的結(jié)果