ExternalNativeBuild——安卓gradle

7,862 阅读1分钟

目录
一、前言
二、ExternalNativeBuild 的结构简析
三、cmake
四、ndkBuild
五、写在最后

一、前言

今天分享 ExternalNativeBuild 配置,用于控制 native 的编译

二、ExternalNativeBuild 的结构简析

1、ExternalNativeBuild 存在位置

ExternalNativeBuild 会映射为 com.android.build.gradle.internal.dsl.ExternalNativeBuild 类,继承结构如下:

2、ExternalNativeBuild 的属性

2.1 cmake

  • 类型:CmakeOptions
  • 具体请见第三小节

2.2 ndkBuild

  • 类型:NdkBuildOptions
  • 具体请见第四小节

3、代码结构

externalNativeBuild {
	ndkBuild {
		...	
	}
	
	cmake {
		...
	}

}

三、cmake

1、存在位置

映射为 com.android.build.gradle.internal.dsl.CmakeOptions,类继承结构

2、cmake属性

2.1 buildStagingDirectory

  • 类型:String
  • 描述:配置native构建后文件的存放路径
  • 使用方法:
cmake {
	buildStagingDirectory "./outputs/cmake"
}

2.2 path

  • 类型:String
  • 描述:设置 CMakeLists.txt 的路径
  • 使用方法:
cmake {
	path "src/main/cpp/CMakeLists.txt"
}

2.3 version

  • 类型:String
  • 描述:设置 Android 编译CMake的版本
  • 使用方法:
cmake {
	version "3.10.2"
}

四、ndkBuild

1、存在位置

映射为 com.android.build.gradle.internal.dsl.NdkBuildOptions,类继承结构

2、ndkBuild属性

2.1 buildStagingDirectory

  • 类型:String
  • 描述:配置native构建后文件的存放路径
  • 使用方法:
ndkBuild {
	buildStagingDirectory "./outputs/ndk-build"
}

2.2 path

  • 类型:String
  • 描述:设置 Android.mk 的路径
  • 使用方法:
ndkBuild {
	path 'Android.mk'
}

五、写在最后

Gradle项目地址:Github传送门 (如果对你有所帮助或喜欢的话,赏个star吧,码字不易,请多多支持)

本篇博文的 ExternalNativeBuild 配置,请进传送门

如果觉得本篇博文对你有所启发或是解决了困惑,给个赞或关注公众号呀,小盆友会继续分享更多的优质文章。

或是请我喝杯咖啡吧,小盆友会更加信心百倍的写下去