I . 创建 NDK 项目
1. 创建支持 NDK 的项目 : 当前最新的 Android Studio 支持直接创建 支持 C/C++ 的带 NDK 配置的项目 ;
如果向现有项目加入 C/C++ 代码 , 首先要创建 cpp 代码文件 , 然后创建 CMakeList.txt 编译脚本 , 最后在 build.gradle 中配置该编译脚本 , 这里不再详细描述 ;
在菜单栏中选择 File -> New -> New Project , 在弹出的对话框中选择 Native C++ 项目 ;
2. 设置项目属性 : 输入项目名称 , 包名 , 选择项目位置 ;
3. 选择 C++ 版本 : 选择默认即可 ;
II . NDK 项目 相关配置
1. CMakeList.txt C/C++ 代码编译脚本 :
# For more information about using CMake with Android Studio, read the # documentation: https://d.android.com/studio/projects/add-native-code.html # 设置 CMake 编译 Native 库 需要的最小版本号 cmake_minimum_required(VERSION 3.4.1) # 创建库并为其命名 , 设置该库类型 , 静态(.a) 或 动态 (.so) , 设置编译的源代码位置 # 可以在此定义不同的库 , 并且 CMake 会编译这些库 # Gradle 在 APK 中会自动打包并使用这些库 add_library( # 设置库的名称 native-lib # 设置该库时静态库 SHARED # 设置源代码的相对路径 , 路径是相对于该 CMakeList.txt 编译脚本的 native-lib.cpp ) # 查找指定的预编译库 , 将查找到的库 当做变量 存储 起来 , 之后可以直接使用该变量链接 目标库 ; # CMake 默认包含系统库 , 这里我们需要指定 想要添加的 公共 NDK 库 名称 # CMake 会在编译前验证该库是否存在 find_library( # 设置变量路径名称 log-lib # 指定 你想要的 CMake 定位的 NDK 库名称 log ) # 指定 CMake 要链接到目标库的 其它库 ; # 你可以链接多种库 , 如 在该脚本中定义的库 , 预编译的第三方库 , 系统库 等 ; target_link_libraries( # 指定目标库 native-lib # 将 NDK 中的 log 日志库链接到目标库 ${log-lib} )
2. build.gradle 项目编译脚本配置 :
apply plugin: 'com.android.application' android { ... //设置 CMake 的编译脚本位置 , 和 Cmake 的版本号 externalNativeBuild { cmake { path "src/main/cpp/CMakeLists.txt" version "3.10.2" } } } dependencies { ...