android studio ndk参数,Android Studio NDK(工程配置篇)

Android Studio NDK(工程配置篇)

在 Android Studio 中开发 NDK 和以往的 Eclipse ADT 不同, 现在 Android Studio 除了支持 Android.mk 之外还支持使用 CMake 来作为其 c/c++ 的构建工具.

Android.mk

用于向构建系统描述源文件和共享库. 它实际上是一小段一小段的 Makefile 片段. 主要用于定义构建系统和环境变量所未定义的项目范围设置.

配置项目

在 Android Studio(截止 2.3.3 版本) 中使用 Android.mk 需要自己手动来进行配置 (Gradle).

ab7653affab982b574eb7acc55df2e04.gif

1.PNG

如图 1

打开 project 中需要添加 ndk 的 module 的 build.gradle,

图中的配置意思是:

1, Android.debugConfig.externalNativeBuild

配置编译过程的参数

可以添加如下图 2 的配置:

ab7653affab982b574eb7acc55df2e04.gif

2.PNG

如果熟悉 c/c++ 开发, 应该对 cflag/cppflag 这些参数不陌生. 具体需要根据项目来进行配置. 比如需要使用 c++11

则可以配置:

cppFlags "-std=c++11"

在图 1 中配置的 abiFilters 是指定编译指定 CPU 架构 x86 与 armeabi-v7a 两种.

1, Android.debugConfig.ndk

装载打包配置

在图 1 中的配置表示只会将 x86 与 armeabi-v7a 打包进入 apk,

这个配置可以保证, 如果引用的第三方库存在全架构的库文件, 而不会把所有的都打包进入 apk 中.

2, Android.externalNativeBuild

建配置文件路径

这个路径可以随意填写, 相对路径地址与 build.gradle 文件同级.

编写好 Android.mk 之后, 当我们在执行打包的时候就会先将配置的静态 / 动态编译出来.

ab7653affab982b574eb7acc55df2e04.gif

3.PNG

CMake

跨平台的编译配置工具, 它可以根据配置来生成不同平台, 不同编译器的 Makefile,vs sln 等. 通过编写 CMakeLists.txt 可以控制编译过程.

Cmake 的配置方法与 Android.mk 的方式基本一样. 区别只在两个 externalNativeBuild 中的 ndkBuild 换成 cmake 就可以了.

ab7653affab982b574eb7acc55df2e04.gif

4.PNG

CMakeLists.txt 的语法相对比 Android.mk 更简单.

使用的比较多的配置就下面几种:

set(x y)

设置一个变量 x 值为 y

file(GLOB x y z ...)

集合 x 存放有 y,z..., 一般涌来配置自己的源文件

add_library(x STATIC/SHARED IMPORTED)

添加一个静态 / 动态库, 方式为导入

set_target_properties(x PROPERTIES IMPORTED_LOCATION y)

配合上面的使用设置导入路径

include_directories(x)

引入头文件路径 x, 这样我们自己编写的代码中能够使用 #include <> 而不需要使用 #include ""

add_subdirectory(x)

会去查找 src/main/cpp/librtmp 目录下查找 CMakeLists.txt 文件, 并加入到当前构建中 (分模块)

target_link_libraries(x y z ...)

链接库 (就是配置我们自己编写的 c/c++ 的依赖, 和 java 中配置 jar 包一个意思)

给大家看一个我工程当中用到的一个例子:

ab7653affab982b574eb7acc55df2e04.gif

5.PNG

在例子中第四行我引入了另一个 CMakeLists.txt, 在这个 txt 中会编译一个静态库, 能够作为预编译库来使用:

ab7653affab982b574eb7acc55df2e04.gif

6.PNG

小编帮大家整理了一些资料, 需要的加 QQ 群: 4112676

来源: http://www.jianshu.com/p/e12e65b1f01e

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值