1. 程式人生 > >AndroidStudio結合JNI使用JrtpLib動態庫(一)

AndroidStudio結合JNI使用JrtpLib動態庫(一)

上一篇文章介紹瞭如何編譯生成JrtpLib的庫檔案,這篇文章探討如何在Android上使用編譯出的庫檔案。

1.建立專案勾選 Include C++ support

2.建立存放庫檔案和標頭檔案的存放目錄並將對應檔案新增其中


3.修改CMakeLists.txt:

新增庫(add_library,set_target_properties)

#直接引用jrtp庫
add_library(jrtp SHARED IMPORTED)
set_target_properties(jrtp
PROPERTIES IMPORTED_LOCATION
${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libjrtp.so)

#直接引用jthread庫
add_library(jthread SHARED IMPORTED) set_target_properties(jthread PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libjthread.so)

連結標頭檔案(target_include_directories)

#連結第三方庫的標頭檔案
target_include_directories(native-lib PRIVATE
            include)

連結庫(target_link_libraries)

target_link_libraries( # Specifies the target library.
        native-lib
        jrtp
        jthread
        ${log-lib}
)

設定引數(SET)

SET(CMAKE_CXX_FLAGS "-std=c++11 -g -O0")

指定ABI目錄(include_driectories)

include_directories(/Users/danly/Library/Android/sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi)

4.gradle中的defaultConfig下新增ndk項

ndk {
//選擇要新增的對應cpu型別的.so庫。
abiFilters 'armeabi-v7a'
}

5.Make Project通過後就可以在cpp檔案中直接呼叫標頭檔案和對應api了。

-------------------------------------------------------------------------------

EX:“列印RTPLibrary版本”

執行效果如下: