今天偶然在網(wǎng)上看到這樣的小技巧勾栗,不過其實按照中Groovy的介紹,這個也是理所當然的,不過這個例子能夠打開腦洞枚冗,其實啥都可以做。
首先工程已經(jīng)在個人開源中:https://github.com/monkeytest15/Gradle_multi_apks/tree/master/monkeyApplication
如果看到之前的Gradle文章的話其實可以了解到groovy是個什么語言蛇损,其次之前其實也都看到gradle的編譯是運行之后可以直接產(chǎn)出應用的赁温,這次我們來看下交互的模式坛怪。
這個例子是為了在使用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'
}
在這中間,關鍵代碼如下:
我們可以在編譯的時候看到出現(xiàn)了簽名的選擇:
到此我們腦洞可以大開啦~~