Android开发-如何获取VersionCode和VersionName

 1. 简介

VersionCode和VersionName是Android应用程序的两个属性。VersionCode常常用于App内部,进行版本升级时,用的就是VersionCode;VersionName用于显示,通常,用户在安装打开app后,可以看到这个版本号。

2. 设置值

在Android清单文件中或build.gradle文件中,可以设置 VersionCode和VersionName的值,例如:

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig {
        applicationId "com.test.fragmenttest"
        minSdkVersion 16
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

说明:

上图是在build.gradle中的值。 

 3 用代码获取VersionCode和VersionName

//VersionCode和VersionName的获取:
/**
 * 获取版本号
 *
 * @return 当前应用的版本号
 */
public static String getPackageVersionName(Context context, String pkgName) {
   try {
      PackageManager manager = context.getPackageManager();
      PackageInfo info = manager.getPackageInfo(pkgName, 0); //PackageManager.GET_CONFIGURATIONS
      return info.versionName;
   } catch (Exception e) {
      e.printStackTrace();
      return null;
   }
}


public static int getPackageVersionCode(Context context, String pkgName) {
   try {
      PackageManager manager = context.getPackageManager();
      PackageInfo info = manager.getPackageInfo(pkgName, 0);
      return info.versionCode;
   } catch (Exception e) {
      e.printStackTrace();
      return -1;
   }
}

说明:

(1)PackageManager.getPackageInfo:可以获取安装包信息,返回一个PackageInfo对象,这个对象的versionCode和versionName属性就是在build.gradle中设置的值。

(2)versionCode是一个int型的值;而versionName是一个String类型的值,通常形式是x.b.z

4 PackageInfo常用属性:

packageName 应用程序包名
versionCode 应用程序版本号
versionName 应用程序版本名称
applicationInfo 应用的application 标签下的属性
firstInstallTime 首次安装时间
lastUpdateTime 更新时间
gids linux 内核权限
activities 应用的所有activity
receivers 应用的所有广播接收者
services 应用的所有服务
providers 应用的所有内容提供者
instrumentation 用于创建activity的instrumentation
permissions 应用程序权限列表
requestedPermissions 应用程序已经申请的权限列表
requestedPermissionsFlags 应用程序已经申请的权限列表标记
signatures 应用程序的签名

 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liranke

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值