有些库为特定的CPU体系结构或APP应用程序二进制接口(ABI )提供单独的软件包,并将其组织在单独的目录中。 此方法有助于库充分利用特定的CPU体系结构,从而使库只能使用所需的库版本。 要将库的多个ABI版本添加到CMake构建脚本中,而不是为库的每个版本编写多个命令,请使用ANDROID_ABI路径变量。 此变量可以是NDK支持的一组默认ABI,也可以是一组过滤后的ABI,用于手动设置和使用网格。 例如:
add_library(… (. )
set _ target _ properties (# specifiesthetargetlibrary。
导入的lib
# specifiestheparameteryouwanttodefine
属性输入_ location
# providesthepathtothelibraryyouwanttoimport。
imported-lib/src/$ { Android _ ABI }/lib imported-lib.so }
要允许CMake在编译时搜索头文件,必须使用include_directories ()命令并包括头文件的路径。
include _ directories (imported-lib/include/)
注:如果要封装非生成依赖项的已生成库,例如,添加属于imported-lib依赖项的已生成库,则不需要执行以下步骤来关联库:
要将预构建库与自己的本机库相关联,请将其添加到CMake构建脚本的target_link_libraries ()命令中。
target _ link _ libraries (native-lib imported-lib app-glue $ { log-lib } ) )
生成APP应用程序时,Gradle会自动将导入的库封装到APK中。 您可以使用APK分析器查看Gradle将哪些库封装在APK中。 有关CMake命令的详细信息,请参阅CMake文档。