Android studio cMake 使用详解

  本人最近在学习ndk 开发,由于用惯了AS 之后不想再去试用Eclipse  所以最近一个人再折腾 使用Android Studio 进行NDK 开发(使用ffmpeg进行练手)


  由于是一个人自己再折腾,再加上白天也比较忙,晚上还经常加班 折腾了好久才搞明白


废话不多说 开始NDK 流程  



一.创建一个NDK 工程

    这一部其实非常简单,只需要在android studio 中 下载NDK  然后在新建项目的时候 勾选c++选项即可


二.NDK 主要部分分析  

  使用android studio 创建好NDK 工程之后 会发现NDK 工程主要有三部分组成  

Android studio cMake 使用详解_第1张图片


如图所示:  NDK项目相对于 一般的工程而言  多了如上三个部分 

1.  .externalNativeBuild    该部分是使用cMake 编译成so库部分  该部分内容为自动生成 在实际项目中 不会过多的操作该部分 

2.  cpp    该部分是生成了一个cpp文件目录 用于存放c/c++代码

3.CMakeLists.txt  该部分是cMake的脚本配置部分   需要在这里进行相应的配置


出了上图所示内容外  gradle 也多了一小部分内容 如下图所示:

Android studio cMake 使用详解_第2张图片



三配置CMakeLists.txt


其实 配置该文件比较简单  主要的配置有  三个方面 


1.常规 (系统自带部分)

cmake_minimum_required(VERSION 3.4.1)

find_library( log-lib
              log )

这两部分  第一行是  设置cmake的最低版本  第二部分是 cmake自带库


2加入c++部分

该部分分为两种 1.引用外部so库   2.引用本地c/c++代码


add_library( avutil-54
             SHARED
             IMPORTED )
set_target_properties( avutil-54
                       PROPERTIES IMPORTED_LOCATION
                       ../../../../libs/armeabi/libavutil-54.so )

改图为引用外部so库   



add_library( native-lib
             SHARED
             src/main/cpp/native-lib.cpp )
改图为引用本地c++代码  


3.本地c++代码关联  和 外部so 库 引入头文件

include_directories(libs/include)

target_link_libraries( native-lib swresample-1 avcodec-56 avfilter-5 swscale-3 avdevice-56 avformat-56
                       ${log-lib} )

四 编写本地c++ 代码

 该部分 略。。。


五 打包apk

略。。

你可能感兴趣的:(Android,进阶)