2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Android 获取应用版本号与版本名

Android 获取应用版本号与版本名

时间:2021-03-14 02:59:01

相关推荐

Android 获取应用版本号与版本名

应用场景:

1、在界面中显示应用程序的版本号;

2、用户启动该应用,后台判断该应用是否是最新版本。

上述情景都需要在程序中自动获取到应用的版本号。

VersionCode与VersionName简介

VersionCode——- 版本号,这是一个Integer类型的值。所以大家在设置的时候,不要将versionCode设置的太大,最好不要超过Integer的取值范围(当然一般也是不会超过的),一般大家在发布自己的第一个应用到市场的时候,版本取值为1(versionCode=1),这也是目前典型和普遍的做法。

然后,每次发布更新版本时可以递增versionCode的值。上面描述版本控制重要性时也描述过,一个新版本的应用的versionCode不能小于之前旧版本的versionCode值,否则进行替换更新升级时会出错,系统提示无法安装。当然,这也不是强制的,只是正式发布应用时,建议必须考虑的问题。

VersionName—— 版本名,这是一个值为String类型的属性,一般和VersionCode成对出现。VersionCode是方便程序开发者运行和维护Application而设置的一个有效的值。versionName是一个版本的描述,给用户看的,也是用户放在各个第3方平台上提供给使用者看的一个版本名,可以说是对VersionCode的解释和描述。一般格式可以为:1.1.2(major.minor.point)的形式。

实现思路:

在Android中,应用程序的版本号是在AndroidManifest.xml文件中进行配置的,而PackageInfo类则封装了从该配置文件中获取的所有信息,描述了包内容的整体信息,因此,可以使用PackageInfo对象的versionName属性获取应用的版本号。

要怎么获取PackageInfo对象呢?可以通过PackageManager对象来获取。PackageManager是一个检索当前已安装在设备上的相关应用程序包的各种信息的类。PackageManager对象中的getPackageInfo方法可以获取PackageInfo对象,该方法需要传递两个参数:应用包名和条件。通常情况下,应用程序的包名可以通过Activity或Context(Activity继承自Context)的getPackageName()方法获取,而添加可以有很多设置,通常设置为0。

最后是PackageManager对象的获取,Context对象提供了getPackageManager()方法来获取该对象。

综上,模板代码如下:

/*** 获取本地软件版本号*/public static int getLocalVersion(Context ctx) {int localVersion = 0;try {PackageInfo packageInfo = ctx.getApplicationContext().getPackageManager().getPackageInfo(ctx.getPackageName(), 0);localVersion = packageInfo.versionCode;LogUtil.d("本软件的版本号:" + localVersion);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return localVersion;}/*** 获取本地软件版本号名称*/public static String getLocalVersionName(Context ctx) {String localVersion = "";try {PackageInfo packageInfo = ctx.getApplicationContext().getPackageManager().getPackageInfo(ctx.getPackageName(), 0);localVersion = packageInfo.versionName;LogUtil.d("本软件的版本名:" + localVersion);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return localVersion;}

PS: adb 查看Android版本号和SDK版本号

获取系统版本:adb shell getprop ro.build.version.release获取系统api版本:adb shell getprop ro.build.version.sdk

为了向别人、向世界证明自己而努力拼搏,而一旦你真的取得了成绩,才会明白:人无须向别人证明什么,只要你能超越自己。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。