Java Native Interface
Java本地接口
可以使Java呼叫c/c++的function,或是反過來也可以
會把c/c++編譯成.so檔
前置歩驟
聲明 Native 函式
去到你打算使用cpp函式的java檔案
static {
System.loadLibrary("<函式庫名稱>");
}cpp/
創建cpp資料夾
其中的CMakeLists.txt
#版本要求不用亂動
cmake_minimum_required(VERSION 3.22.1)
#函式庫名稱
project("adeater")
#增加自己寫的 c/cpp 檔案
add_library(adeater SHARED
adeater.cpp)
#增加外部函式庫
find_library(
log-lib
log)
#連結函式庫
target_link_libraries(${CMAKE_PROJECT_NAME}
# List libraries link to the target library
android
log
${log-lib}
)重點
cpp函式命名
extern "C" JNIEXPORT jboolean JNICALL
Java_com_cheesege_adeater_SecondDialog_checkPassword(
JNIEnv* env, // JNI 環境指標,用於與 JVM 互動
jobject thiz,){
}