将 so 库和头文件拷贝到对应的目录
/app/src/main/jniLibs/arm/libxxx.so
修改 CMakeLists.txt 文件
第三方so库 这里和之前在第二步中介绍的创建一个新的原生库类似,
区别在于最后一个参数,我们通过IMPORTANT标志告知CMake只希望将库导入到项目中。
目标库的路径 这里有几点需要说明
1、CMAKE_SOURCE_DIR}表示的是CMakeLists.txt所在的路径,我们指定第三方so所在路径时,应当以这个常量为起点。
2、我们应当为每种ABI接口提供单独的软件包,那么,我们就可以在jinLibs下建立多个文件夹,每个文件夹对应一种ABI接口类型,之后再通过${ANDROID_ABI}来泛化这一层目录的结构,这样将有助于充分利用特定的CPU架构。
3、第三方的库关联到原生库 这里和将NDK库关联到原生库的原理是一样的。
不过,为了确保CMake可以在编译时定位我们的头文件,我们需要将include_directories()命令添加到CMake构建脚本中并指定头文件的路径
add_library(
#指定目标导入库.
imported-lib
#设置导入库的类型(静态或动态) 为 shared library.
SHARED
#告知 CMake imported-lib 是导入的库
IMPORTED
)
set_target_properties(
# 指定目标导入库
imported-lib
# 指定属性(本地导入的已有库)
PROPERTIES IMPORTED_LOCATION
# 指定你要导入库的路径.
# ${CMAKE_SOURCE_DIR} imported-lib/src/${ANDROID_ABI}/libimported-lib.so )
#为了确保CMake可以在编译时定位到我们的头文件,我们需要使用include_directories()命令,并包含头文件的路径
include_directories( imported-lib/include/ )
#要将预构建库关联到我们的原生库,请将其添加到 CMake 构建脚本的 target_link_libraries() 命令中
target_link_libraries(
# 指定了三个库,分别是native-lib、 imported-lib和log-lib.
native-lib
imported-lib
# log-lib是包含在 NDK 中的一个日志库
${log-lib}
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)