Android Java 如何調(diào)用自己的 C++ 的類(lèi)庫(kù)
下面以 Java 調(diào)用 C++ 的加法運(yùn)算函數(shù)為例,做簡(jiǎn)單說(shuō)明。
(使用 Android Studio 3 編譯)
首先編譯 c++ 類(lèi)庫(kù)
創(chuàng)建獨(dú)立目錄存放 c++ 文件,例如 "app/src/main/cpp/add.cpp",內(nèi)容如下
#include <jni.h>extern "C" JNIEXPORT jintJNICALLJava_com_example_liyi_demo_Util_add( JNIEnv *env, jobject, jint a, jint b) { return a + b;}被調(diào)用的函數(shù)命名必須是 "Java_<namespace>_<class>_<method>" ,此例表示Java 包 com.example.liyi.demo 下,Util 類(lèi)的 add 方法將關(guān)聯(lián)此 c++ 函數(shù)。
將上一步的 c++ 目錄加入編譯項(xiàng)。已 cmake 為例,將下面內(nèi)容加入 CMakeLists.txt
add_library( native-util SHARED src/main/cpp/add.cpp )
這樣可編譯成 native-util.so 庫(kù)。
在 Java 中調(diào)用
實(shí)現(xiàn) Util 類(lèi)。將如下內(nèi)容存成 src/main/java/Util.java 文件
package com.example.liyi.demo;public class Util { static { System.loadLibrary(libname: "native-util"); } private native int add(int a, int b); public int java_add(int a, int b) { return add(a, b); }}總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)VEVB武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注