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,){
 
}

待讀

(https://blog.csdn.net/carson_ho/article/details/73250163)