Google为APK定义了两个关于版本号属性:VersionCode和VersionName,他们有不同的用途。 VersionCode:对消费者不可见。...VersionName:展示给消费者,消费者会通过它认知自己安装的版本号,下文提到的版本号号都是说VersionName。...因此Google也支持在AKP安装包内记录[VersionName]。你能够叫Win 7、Win Vista都没问题。...能够满足市场、传播方面的需求,这样[VersionName]事实上不具备比較新、旧版本号的能力。仅仅是用来展示给消费者看的。...VersionName:展示给消费者,消费者会通过它认知自己安装的版本号。一般我们说的版本号号就是这个。 我们在运营的过程中。发现有的开发人员会遇到一些问题。
* downloadUrl : http://xxxxxx.apk * versionCode : 3 * versionDes : 1.1.3版本发布了 * versionName...VersionDes", "versiondes", "Versiondes"}) private String versionDes; @SerializedName(value = "versionName...", alternate = {"VersionName", "versionname", "Versionname"}) private String versionName; public...{ this.versionDes = versionDes; } public String getVersionName() { return versionName...; } public void setVersionName(String versionName) { this.versionName = versionName;
" ${logname}|awk -F"'" '{print $3}'|grep versionName |wc -l` if [ "$isversionName" -eq 1 ];then...VERSIONNAME=`grep "versionName" ${logname}|awk -F"'" '{print $4}'` fi isversionName=...`grep "versionName" ${logname}|awk -F"'" '{print $5}'|grep versionName |wc -l` if [ "$isversionName..." -eq 1 ];then VERSIONNAME=`grep "versionName" ${logname}|awk -F"'" '{print $6}'` fi...package_md5, package_name,version_name,sdk_version) VALUES ('${VERSIONCODE}','${PACKMD5}','${NAME}','${VERSIONNAME
versionName } def versionJsonFile = file('....+ 1 int lastIndexPoint = versionJsonObject.versionName.lastIndexOf(".")...String newStr = versionJsonObject.versionName.substring(0, lastIndexPoint) println("newStr" +...println("versonJsonStr.versionName " + versionJsonObject.versionName) } //这句是核心,可以调整版本号和版本明,...", versionJsonObject.versionName) } //为了记住最新的版本号,是需要进行文件的回写的,什么时候回写会好一点 //个人认为只有当打包apk的动作执行成功后
想获得一个可配置打包脚本的方法,允许 配置人员根据需要修改 服务器地址,versionCode, versionName 等 4. 隔离的源代码的配置,使用者在 jenkins里进行配置。...实现: 修改versionCode和 versionName 上面的演示中,我们传入了gradle的参数,如何在gradle中使用呢?...VERSION_NAME_PARA } } 我们需要配置 defaultConfig 节点,读取上面传入的参数的值作为 versionCode或者 versionName。...直接使用即可,比如下面: versionCode Integer.parseInt(VERSION_CODE_PARA) 注意这里,进行了 转型,从字符串转型为 int 类型 versionName...),写下代码: if (android.defaultConfig.versionName !
android { compileSdkVersion 25 buildToolsVersion "25.0.0" versionCode 1 versionName "...output.outputFile=new File(output.outputFile.parent,output.outputFile.name.replace(".apk","-"+defaultConfig.versionName....apk")) //android studio3.0的写法 outputFileName = "${project.archivesBaseName}-${defaultConfig.versionName...debug{} //release版本 release{} } 这里需要注意一点就是,如果我们用了productFlavors{}属性,那咱们就不用去添加defaultConfig.versionName...了,因为如果添加了,打出包的名称就会多一个versionName。
= getVersionName() fileName = "XYZ_${variant.mergedFlavor.versionName}_release.apk"...} else if (variant.buildType.name.equals('debug')) { variant.mergedFlavor.versionName = getVersionName...+releaseTime() fileName = "XYZ_${variant.mergedFlavor.versionName}_debug.apk" }...= getVersionName() fileName = "XYZ_${variant.mergedFlavor.versionName}_release.apk"...+releaseTime() fileName = "XYZ_${variant.mergedFlavor.versionName}_debug.apk" }
上下文 * @return */ public static String getVersionName(Context context) { String versionName...= ""; try { //获取软件版本号,对应AndroidManifest.xml下android:versionName versionName...getPackageInfo(context.getPackageName(), 0).versionName; } catch (PackageManager.NameNotFoundException...e) { e.printStackTrace(); } return versionName; } } 还蛮好用的,你可以试试哦。
方法一: 1、打开项目工程,找到左侧项目目录里面的app目录下的build.gradle文件,然后单击进入,然后找到defaultConfig文件里面的“versionName”选项,这个选项对应的就是系统版本号信息...context.getPackageManager(); PackageInfo pi = pm.getPackageInfo(context.getPackageName(),0); versionName...= pi.versionName; if (versionName == null || versionName.length() <= 0) { return...} } catch (Exception e) { Log.e("VersionInfo", "Exception", e); } return versionName...PackageInfo packeInfo = packageManager.getPackageInfo(getPackageName(),0); version = packeInfo.versionName
android应用的版本主要由versionCode和versionName来决定,android系统是根据versionCode来验证新的apk是否能安装。...回到正题,需要重点来说一下versionCode和versionName的区别: versionCode 是一个有符号的整型(signed int),其值的范围为-2^31 ~ 2^31 – 1,但零...、负值没什么实际意义,所以一般取1 ~ 2147483647之间的值 最大值为Math.pow(2, 31) – 1 = 2147483647 versionName 是一个字符串,通常我们会使用xx.xx...或者xx.xx.xx这样进行区分,对外也是拿versionName进行宣传,比如我们发布了2.0版本,新增xx功能,优化xx 版本的控制问题,通常的做法是出一个新版本时,versionName与versionCode...简单一点的办法就是”001” 改为 “01”这样就不会溢出了,那有人会说二位不够用啊,我觉得一天下来你应该不会打超过99个同版本(versionName)的包吧 参考资料: Maximum Length
android { compileSdkVersion 25 buildToolsVersion "25.0.0" versionCode 1 versionName "1.0.0" project.archivesBaseName...output.outputFile = new File(output.outputFile.parent,output.outputFile.name.replace(".apk","-" + defaultConfig.versionName...debug版本 debug{} //release版本 release{} } 这里需要注意一点就是:如果我们用了productFlavors{}属性,那咱们就不用去添加defaultConfig.versionName...了,因为如果添加了,打出包的名称就会多一个versionName。...productFlavors{}情况下:AppName-1.0.0.apk 使用productFlavors{}情况下:AppName-test-release-1.0.0.apk,如果您加了defaultConfig.versionName
applicationId "com.example.app" minSdkVersion 23 targetSdkVersion 26 versionCode 1 versionName...(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1, calendar.get(Calendar.DAY_OF_MONTH)) def versionName...= defaultConfig.versionName def versionCode = defaultConfig.versionCode //android studio3.0...variant.buildType.name.equals('release')) { outputFileName = "${project.archivesBaseName}-v${versionName...buildDate}-release.apk" } else { outputFileName = "${project.archivesBaseName}-v${versionName
public class AppInfo { public String appName = ""; public String packageName = ""; public String versionName...print(){ Log.v("app","Name:"+appName+" Package:"+packageName); Log.v("app","Name:"+appName+" versionName...:"+versionName); Log.v("app","Name:"+appName+" versionCode:"+versionCode); } } 下面是我写的一个方法,可以选择获取手机安装的所有...getPackageManager()).toString(); tmpInfo.packageName = packageInfo.packageName; tmpInfo.versionName...= packageInfo.versionName; tmpInfo.versionCode = packageInfo.versionCode; tmpInfo.appIcon
= variant.versionName def versionCode = variant.versionCode def date...def formattedDate = date.format('yyyyMMdd') def apkName = project + separator + "v" + versionName...if (buildType == "release") { apkName = project + separator + "v" + versionName...= variant.versionName def versionCode = variant.versionCode def date...def formattedDate = date.format('yyyyMMdd') def apkName = project + separator + "v" + versionName
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="PACKAGE" android:versionName...="VERSIONNAME"> <...我们的目标是解析若干属性:如package, versionName, icon, label, name等,代码如下: attributes()->package); var_dump((string)$nodes[0]->attributes('android', true)->versionName
.***" minSdkVersion 19 targetSdkVersion 27 versionCode 1 versionName...output.outputFile = new File(output.outputFile.parent, "ljy_" + defaultConfig.versionCode + "_v" + defaultConfig.versionName...variant.outputs.all { outputFileName = "myview_" + defaultConfig.versionCode + "_v" + defaultConfig.versionName...' } repositories { mavenCentral() } ——2019-08-08修订 其中defaultConfig.versionCode、defaultConfig.versionName...已经被variant.versionCode、variant.versionName取代,如果强行使用会报错 WARNING: API 'variantOutput.getPackageApplication
1、在AndroidManifest.xml文件中修改项目的版本号,即设置android:versionCode和android:versionName时,当手机上的安装文件没有卸载时,versionName...和versionCode只能由小变大时才会正常安装,当versionName和versionCode小于手机上的该App对应的版本号时,App将无法部署到手机上进行调试,将会弹出如下图所示的安装错误的提示
这边用的是appname+versionname+versioncode.apk的命名规则,这里可以根据自己的需求进行修改,或者将其放到扩展参数里,留给用户在build.gradle中设置。...def androidExtensions = project.extensions.findByName("android") //得到versionName...和versionCode def versionName = androidExtensions.defaultConfig.versionName...//创建新的文件 def apkFile = new File(output.outputFile.parent, "${apkName}-${versionName
= FindInDocument(doc, "manifest", "versionName"); info.packageName = FindInDocument(doc,...== null) info.versionCode = fuzzFindInDocument(doc, "manifest", "versionCode"); if(info.versionName...== null) info.versionName = fuzzFindInDocument(doc, "manifest", "versionName"); else if(info.versionName.StartsWith...("@")) VER_ICN[VER_ID] = info.versionName; String id = FindInDocument(doc, "application",...= null) { if(versions.Count > 0) info.versionName = versions
e: ... } impl GreatAlgo { fn version_create(&self, name: &str) { self.a.version_create(VersionName...(name)).unwrap(); self.b.version_create(VersionName(name)).unwrap(); self.c.version_create...(VersionName(name)).unwrap(); self.d.version_create(VersionName(name)).unwrap(); ...
领取专属 10元无门槛券
手把手带您无忧上云