今天偶然在网上看到这样的小技巧,不过其实按照中Groovy的介绍,这个也是理所当然的,不过这个例子能够打开脑洞,其实啥都可以做。
首先工程已经在个人开源中:https://github.com/monkeytest15/Gradle_multi_apks/tree/master/monkeyApplication
如果看到之前的Gradle文章的话其实可以了解到groovy是个什么语言,其次之前其实也都看到gradle的编译是运行之后可以直接产出应用的,这次我们来看下交互的模式。
这个例子是为了在使用gradle编译的时候能够进行签名的定制化,我们需要在app的目录下,注意不是root project。在app的目录下的build.gradle做如下编写:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "com.example.monkey.myapplication"
minSdkVersion 10
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
//这个是解决lint报错的代码
lintOptions {
abortOnError false
}
signingConfigs {
myConfigs {
storeFile file( System.console().readLine("\n\$ Enter keystore path: "))
storePassword System.console().readPassword("\n\$ Enter keystore password: ")
keyAlias System.console().readLine("\n\$ Enter key alias: ")
keyPassword System.console().readPassword("\n\$ Enter key password: ")
}
}
productFlavors {
qqqq {
applicationId = 'com.monkey.qqq'
}
hhhhh {
applicationId='com.monkey.hhh'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
}
在这中间,关键代码如下:
![gradle1](https://cdn.rawgit.com/monkeytest15/BlogPNG/master/gradle1.png)
gradle1
我们可以在编译的时候看到出现了签名的选择:
![gradle2](https://cdn.rawgit.com/monkeytest15/BlogPNG/master/gradle2.png)
gradle2
到此我们脑洞可以大开啦~~