1、用Gradle构建
1.1 工程结构
如图所示,这是一个不能更普通的Android的Gradle工程了。
- 根目录下面的settings.gradle当中主要是用来include子模块的,比如我们这个工程有一个叫作app的子模块,那么settings.gradle的内容如下:
include ':app'
-
根目录下面的build.gradle包含一些通用的配置,这些配置可以在各个子模块当中使用。
-
gradle.properties文件包含的属性,会成为project的properties的成员,例如我们添加了属性hello,
- 然后我们在build.gradle当中创建task:
task hello
properties.load(instr)
}
def sdkDirProp = properties.getProperty('sdk.dir')
if (sdkDirProp != null) {
androidSdkDir = new File(sdkDirProp)
} else {
sdkDirProp = properties.getProperty('android.dir')
if (sdkDirProp != null) {
androidSdkDir = new File(rootDir, sdkDirProp)
isPlatformSdk = true
} else {
throw new RuntimeException(
"No sdk.dir property defined in local.properties file.")
}
}
def ndkDirProp = properties.getProperty('ndk.dir')
if (ndkDirProp != null) {
androidNdkDir = new File(ndkDirProp)
}
} else {
String envVar = System.getenv("ANDROID_HOME")
if (envVar != null) {
androidSdkDir = new File(envVar)
} else {
String property = System.getProperty("android.home")
if (property != null) {
androidSdkDir = new File(property)
}
}
envVar = System.getenv("ANDROID_NDK_HOME")
if (envVar != null) {
androidNdkDir = new File(envVar)
}
}
}
BasePlugin.groovy,通过这两个方法,我们可以在Gradle脚本当中获取SDK和NDK的路径:
File getSdkDirectory() {
return sdk.sdkDirectory
}
File getNdkDirectory() {
return sdk.ndkDirectory
}
例如:
task hello
关注
打赏