我们默认建立的ndk工程,自带一个cmakelists.txt,里面有详细的参数说明,我把默认的参数翻译一下
# 设置CMAKE的最小版本
cmake_minimum_required(VERSION 3.4.1)
#so库的设置
add_library(
# so库的名字
native-lib
#设置库类型为 shared
SHARED
# 源码路径
src/main/cpp/native-lib.cpp )
# 引用库
find_library(
# 设置库的名称
log-lib
# 设置你要找的NDK库的名称
log )
# 让你的库可以使用找到的库,需要配置下面这段
target_link_libraries(
# 要关联的库
native-lib
# find_library中设置的库的名称
${log-lib} )
你还可以添加的配置,比如
# 引用头文件
include_directories(src/main/cpp/include/)
# 以源码形式包含一个库
add_library( app-glue
STATIC
${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c )
# 引入其他预构建库
add_library( imported-lib
SHARED
IMPORTED )
set_target_properties( # Specifies the target library.
imported-lib
# Specifies the parameter you want to define.
PROPERTIES IMPORTED_LOCATION
# Provides the path to the library you want to import.
imported-lib/src/${ANDROID_ABI}/libimported-lib.so )
#把你添加的库都用target_link_libraries包含进来,第一个参数是你的库,后面的是你要添加的库,多个的话以空格隔开
target_link_libraries( native-lib imported-lib app-glue ${log-lib} )
如需要查询CMAKE的一切配置,可以到CMAKE官网查询
==========================================================
eclipse时代玩过ndk,现在studio时代,应该是大同小异,使用各自的工具,遵守各自的规则即可;参照官网,进行提炼,总结,学习计划如下(本系列只关注cmake,如需学习ndk-build,请自行查阅其他资料):
jni相关,未完待续...
官网参考链接
https://developer.android.google.cn/studio/projects/add-native-code.html