Android Native开发环境搭建(Android Studio 2.32)

Android Studio 2.2之后,引入了Cmake的构建方式来使用C/C++开发,相较于之前Android.mk的方法更加灵活也更加方便。

1. 新建Android Studio工程,勾选C++Support

Android Native开发环境搭建(Android Studio 2.32)_第1张图片

2. 一路Next到这一步

Android Native开发环境搭建(Android Studio 2.32)_第2张图片
Step 2

3. 如果没报错那就是完成了,报错可能是你可能没有NDK,如果没有的话需要下载NDK或者指定本地NDK的目录

Android Native开发环境搭建(Android Studio 2.32)_第3张图片
Step 3

4. 下载完成后,你需要在当前项目的配置中指定NDK目录

Android Native开发环境搭建(Android Studio 2.32)_第4张图片
Step 4

5. 现在来看一下项目的Gradle配置文件,打开Module:appbuild.gradle文件

Android Native开发环境搭建(Android Studio 2.32)_第5张图片
Step 5

有两个 externalNativeBuild模块

  1. 指定了defaultConfig里边的额外构建参数
  2. 指定了当前Module的Cmake配置文件路径。此路径相是对于build.gradle的路径而言,因为其实两者在同一目录下,所以,直接写的是"CmakeLists.txt"

6. CMakeLists.txt文件

一个标准的CmakeLists.txt文件如下

# 指定最低Cmake版本
cmake_minimum_required(VERSION 3.4.1)

# 添加本地代码
add_library(  native-lib                         # 本地代码生成库的名称(也就是你在Android Studio中写的C/C++代码)
              SHARED                             # 设置库的类型为共享库
              src/main/cpp/native-lib.cpp )      # 指定源码文件,也就是cpp文件或c文件,如果有多个cpp或c                          
                                                 # 文件,每个文件之间用空格隔开

# 添加NDK中存在的依赖库
find_library(  log-lib    # 设置要导入的库在本文件中的变量名称(名字可以随便起)
               log )      # 指定要查找的NDK库的名称
              
# 添加第三方的 “.a .o .so” 库
add_library(  ffmpeg      # ffmpeg    设置第三方库在本文件中的变量名称
              SHARED      # SHARED    库的类型为共享库
              IMPORTED)   # IMPORTED  库是由外部导入
# 设置第三方库的库文件位置
set_target_properties( ffmpeg
                       PROPERTIES IMPORTED_LOCATION
                       ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libffmpeg.so )
# 设置第三方库的头文件位置
include_directories(${CMAKE_SOURCE_DIR}/src/libs/ffmpeg/include)

# 关联所有库(注意由NDK中添加的库 ${log-lib}的书写方式和其他库不同)
target_link_libraries(  native-lib
                        ${log-lib}
                        ffmpeg )

你可能感兴趣的:(Android Native开发环境搭建(Android Studio 2.32))