buildType在gradle中的作用比较简单,
1.命名
2.签名
3.混淆
4.其他的一些基本配置
1.命名:
之前介绍过不同渠道的配置方法,这里介绍一下命名规则
buildTypes { release { ....... } hiapk { applicationIdSuffix ".hiapk" } }2.签名
signingConfigs { myConfig{ storeFile file("gradle.keystore") storePassword "gradle" keyAlias "gradle" keyPassword "gradle" }} buildTypes { release { ...... signingConfig signingConfigs.myConfig ...... } hiapk { applicationIdSuffix ".hiapk" } }
3.混淆
buildTypes { debug { minifyEnabled false proguardFile('proguard.cfg') } release { minifyEnabled true proguardFile('proguard.cfg') } }
4.其他的一些基本设置
以下是一些基本配置,感兴趣的可以自己看一下,有一些是根据版本不同不可以使用的
release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' signingConfig signingConfigs.myConfig debuggable false jniDebuggable false versionNameSuffix ".suffix" zipAlignEnabled true pseudoLocalesEnabled true renderscriptDebuggable true }
下面是命名的配置:
applicationVariants.all { variant -> if (variant.buildType.name.equals('release')) { variant.outputs.each { output -> def appName = 'MyApp' def oldFile = output.outputFile def buildName def releaseApkName variant.productFlavors.each { product -> buildName = product.name } releaseApkName = appName + getVersionNameFromManifest() + '-' + buildName + '-' + getDate() + '.apk' output.outputFile = new File(oldFile.parent, releaseApkName) } } }
//获取时间戳 def getDate() { def date = new Date() def formattedDate = date.format('yyyyMMddHHmm') return formattedDate } //从androidManifest.xml中获取版本号 def getVersionNameFromManifest() { def manifestParser = new com.android.builder.core.DefaultManifestParser() return manifestParser.getVersionName(android.sourceSets.main.manifest.srcFile) }