AndroidStudio結合JNI使用JrtpLib動態庫(一)
阿新 • • 發佈:2018-10-31
上一篇文章介紹瞭如何編譯生成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版本”
執行效果如下: