Android versionCode與versionName
阿新 • • 發佈:2019-02-06
android:versionCode——整數值,代表應用程式程式碼的相對版本,也就是版本更新過多少次。
。
android:versionName——字串值,代表應用程式的版本資訊,需要顯示給使用者。
整數值有利於其它程式比較,檢查是升級還是降級。你可以把這個值設定為任何想設的值,但是,你必須保證後續更新版的值要比這個大。系統不會強制要求這一行為,但是隨著版本更新值也增加是正常的行為。
一般來說,你釋出的第一版程式的versionCode設定為1,然後每次釋出都會相應增加,不管釋出的內容是較大還是較小的。這意味著Android:versionCode不像應用程式的釋出版本(看下面的android:versionName)那樣顯示給使用者。應用程式和釋出的服務不應該顯示這個版本值給使用者
與android:versionCode一樣,系統不會為了任何內部的目的使用這個值,除了顯示給使用者外。釋出的服務也需要提取這個值來顯示給使用者。
android-studio中是在build.gradle中進行設定versionCode跟versionName的,而eclipse是在androidmainfest.xml中設定
android-studio:
eclipse:defaultConfig { versionCode 101 versionName "1.0.1" }
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xxx.xxx"
android:versionCode="101"
android:versionName="1.0.1">
......
這裡我們可以建一個工具類進行兩個值的獲取
public class CustomUtils { //獲取版本號(內部識別號) = 101 public static int getVersionCode(Context context) { try { PackageInfo pi = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); return pi.versionCode; } catch (PackageManager.NameNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); return 0; } } //獲取版本號 = "1.0.1"; public static String getVersion(Context context) { try { PackageInfo pi = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); return pi.versionName; } catch (PackageManager.NameNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); return "未知版本"; } } }
借鑑文章: http://blog.csdn.net/zhangzhilai8/article/details/17678429
http://dzy-123.iteye.com/blog/1886264