新建一個Android工程,默認編譯會生成一個叫app-debug.apk或者叫app-release.apk文件,說實話,單純看文件名,我都不到任何有用的信息,我希望輸出的文件名是這樣的:
模塊名-渠道名-版本號-版本名稱-包名-編譯時間.apk
當然,這只是舉一個例子,可能不需要那么長,具體需要什么就加什么。
實現
通過build.gradle來做,具體看代碼
apply plugin: 'com.android.application'
def releaseTime() {
return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.djk.myapplication"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors{
develop{}
xiaomi{}
huawei{}
anzhi{}
}
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
//這里修改apk文件名
def fileName = "demo_${variant.productFlavors[0].name}-${defaultConfig.versionCode}-${defaultConfig.versionName}-${releaseTime() }.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.0'
}
看看效果
生成apk
好了,是不是看著好很多。
Android Studio3.0 Gradle 3.0.0版本
android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}