Android Studio集成第三方庫(kù),封裝jni接口。

我已經(jīng)使用ndk獨(dú)立工具鏈(standalone toolchain)編譯了第三方庫(kù),libabc.so。需要在android studio 中封裝jni接口,對(duì).so庫(kù)函數(shù)進(jìn)行調(diào)用。

1,修改當(dāng)前工程CMakeList.txt,添加依賴(lài)的庫(kù)和頭文件:

include_directories(${PROJECT_SOURCE_DIR}/libs/include)

target_link_libraries(# Specifies the target library.

? ? ? ? native-lib

? ? ? ? # Links the target library to the log library

# included in the NDK.

? ? ? ? ${log-lib}

${PROJECT_SOURCE_DIR}/libs/armeabi-v7a/libabc.so

${PROJECT_SOURCE_DIR}/libs/armeabi-v7a/libdependecy1.so

${PROJECT_SOURCE_DIR}/libs/armeabi-v7a/libdependecy2.so

${PROJECT_SOURCE_DIR}/libs/armeabi-v7a/libdependecy3.so

? ?${PROJECT_SOURCE_DIR}/libs/armeabi-v7a/libdependecy4.so)

2,修改app的build.gradle文件,添加如下字段,依賴(lài)庫(kù)文件夾和依賴(lài)庫(kù)平臺(tái):

sourceSets{

main{

jniLibs.srcDirs = ['libs']

}

}

flavorDimensions'cpuArch'

productFlavors {

arm7 {

dimension'cpuArch'

? ? ? ? ndk {

abiFilter'armeabi-v7a'

? ? ? ? }

}

universal {

dimension'cpuArch'

? ? ? ? // include all default ABIs. with NDK-r16,? it is:

//? armeabi-v7a, arm64-v8a, x86, x86_64

? ? }

}

3,在app文件夾下新建libs文件夾,并將依賴(lài)庫(kù)放入對(duì)應(yīng)平臺(tái)目錄中,如下圖所示:


4,建立java和cpp文件,交互數(shù)據(jù),cpp中包含庫(kù)的頭文件,在cpp中能夠直接調(diào)用庫(kù)函數(shù)了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容