android 打包版本号,Android 使用Gradle打包APP名称和版本号

您所在的位置:网站首页 淮阳孔子庙介绍视频讲解 android 打包版本号,Android 使用Gradle打包APP名称和版本号

android 打包版本号,Android 使用Gradle打包APP名称和版本号

2023-03-18 19:42| 来源: 网络整理| 查看: 265

需求:我想根据不同的类型,打包不同的版本号,在Android中怎么实现?

例如:release(发布)版本号 1.0.1,debug(测试)版本号1.0.1.20160924

在Android开发中,我们会不断的进行版本打包,打包分为2类:

1、release(正式发布上线版)

2、debug(测试版)。

我们可以通过每次打包前修改build.gradle中android->versionName实现,作为一个程序员,有不断探索的精神,能懒就懒(重复没有意义的工作懒的做)。

知识介绍

1、gradle中定义变量和函数 通过关键字 def 来定义

例如:def versionStr = "1.0.1"

def myFunction() { return "xxxxx" }

2、gradle中时间使用

new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC");

这行代码的意思是“当前时间是UTC时区,已yyyyMMdd格式化时间输出”

3、gradle中varianrgedFlavor使用

varianrgedFlavor.versionName 表示修改打包时versionName的值

4、gradle中variant.outputs使用

variant.outputs表示输出相关配置

下面是我的build.gradle文件

apply plugin: 'com.android.application'

apply plugin: 'android-apt'

//定义时间

def releaseTime() {

return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))

}

//设置发布的显示的版本号

def getVersionName(){

return "1.2.0"

}

android {

compileSdkVersion 23

buildToolsVersion "24.0.0"

defaultConfig {

applicationId "com.xxx.xxxx"

minSdkVersion 14

targetSdkVersion 23

versionCode 3

//versionName getVersionName()

}

buildTypes {

debug {

buildConfigField("boolean","API_DEBUG","true")

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

release {

buildConfigField("boolean","API_DEBUG","false")

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

compileOptions {

sourceCompatibility JavaVersion.VERSION_1_7

targetCompatibility JavaVersion.VERSION_1_7

}

//修改打包不能成功配置

lintOptions {

checkReleaseBuilds false

abortOnError false

}

//配置自定义打包名称

applicationVariants.all { variant ->

variant.outputs.each { output ->

def outputFile = output.outputFile

def fileName

if (outputFile != null && outputFile.name.endsWith('.apk')) {

if (variant.buildType.name.equals('release')) {

varianrgedFlavor.versionName = getVersionName()

fileName = "XXXX_{varianrgedFlavor.versionName}_release.apk"

} else if (variant.buildType.name.equals('debug')) {

varianrgedFlavor.versionName = getVersionName()+"."+releaseTime()

fileName = "XXXX_{varianrgedFlavor.versionName}_debug.apk"

}

output.outputFile = new File(outputFile.parent, fileName)

}

}

}

}

dependencies {

compile fileTree(include: ['*.jar'], dir: 'libs')

testCompile 'junit:junit:4.12'

}

tasks.withType(JavaCompile) {

options.encoding = "UTF-8"

}

大家可以举一反三

例如想修改versionCode可以这么写

varianrgedFlavor.versionCode = xxxx;

现在试试吧!

打包输出apk效果图

在应用程序中看效果图

关注公众号获取更多内容和反馈沟通

Share this:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3