android gradle中关于 versionCode versionName 的配置

本文探讨了Android Gradle配置中versionCode和versionName的区别。versionCode是程序识别版本的关键,用于判断安装包是否可更新,而versionName则显示给用户,如2.0.4。当versionCode较低时,即使versionName更高,也无法安装新包。通过getPackageInfo方法可以获取版本信息,以便进行更新判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gradle中关于 versionCode versionName 的配置

    defaultConfig {
        applicationId "com.ppg.simple"
        minSdkVersion 19
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner 
    }

基本上绝大部分人的gradle刚刚创建的时候都是这样的,其中有两个属性versionCodeversionName 一开始我也搞不清楚有什么用,从名字上看似乎是版本号,和版本名

但是在我们公司的项目中基本只用改动versionName而不改动versionCode,直到有一次一个小伙伴不小心把versionCode改成11导致了一次大bug之后我才对着两个属性研究了一番

简单的说,就是
versionCode是给程序识别用的,如果当前A手机上装有versionCode为5的app时,A下载了一个versionCode为4的新的安装包是不能安装的,会提示当前版本比较新之类的提示,不论你的versionName怎么样都不行.
当时我们的项目就是怎么弄都更新识别,后来发现了这个问题后把versionCode改成12就能更新了

versionName是给用户看的版本号,比如2.0.4这样的,同时也可以作为判断当前版本是否需要更新的依据.

    public static boolean compareVersion(String newVersion, Context context) {
        PackageInfo info = null;
        try {
            info = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        String oldVersion = info.versionName;
        int newV = Integer.parseInt(newVersion.replace(".", ""));
        int oldV = Integer.parseInt(oldVersion.replace(".", ""));
        return newV - oldV > 0 ? true : false;
    }

这是我用来判断版本的方法.通过info = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);取得版本信息后使用 int oldV = Integer.parseInt(oldVersion.replace(“.”, “”));把它转换成int型判断

之后改怎么更新就看各自的需求了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值