gradle腳本定義versionCode及versionName

versionCode以及VersionName用來對應(yīng)用做版本控制

versionCode

一個正整數(shù),用作內(nèi)部版本號。此數(shù)字僅用于確定某個版本是否比另一個版本更新:數(shù)字越大表示版本越新。這不是向用戶顯示的版本號;

Android 系統(tǒng)使用 versionCode 值來防止降級,方法是阻止用戶安裝 versionCode 低于設(shè)備上當前所安裝版本的 APK

應(yīng)用和發(fā)布服務(wù)不應(yīng)向用戶顯示此版本值。

VerionName

一個字符串,用作向用戶顯示的版本號。您可以將此設(shè)置指定為原始字符串或?qū)ψ址Y源的引用。

除了向用戶顯示之外,versionName 沒有其他用途。

定義versionName以及versionCode

android {
  ...
  defaultConfig {
    ...
    versionCode 2
    versionName "1.1"
  }
}

查詢版本信息

apk查詢

aapt dump badging xxxxx.apk

Android 框架提供了一個 API,可讓您向系統(tǒng)查詢有關(guān)應(yīng)用的版本信息。如需獲取版本信息,packageManager的getPackageInfo(String, int)方法

自動更新版本信息腳本

策略:通過commit次數(shù)定義

#common.gradle
gradle.allprojects{
    ext {
        master_version = 1
        versionCount = getCommitCount()
        voiceSupport_versionCode = getVersionCode()
        voiceSupport_versionName = getVersionName()
    }
}

def getCommitCount(){
    println("---------- getCommitCount start ----------")
    String resultStr = null;
    Process p = Runtime.getRuntime().exec('git rev-list --count HEAD');
    InputStream fis=p.getInputStream();
    BufferedReader br=new BufferedReader( new InputStreamReader(fis,"GB2312"));
    String line=null;
    if((line=br.readLine())!=null) {
        resultStr = line;
    }
    println("----------" +  resultStr + "----------");
    return Integer.parseInt(resultStr)
}

def getVersionCode(){
    return master_version * 100000 + versionCount
}

def getVersionName(){
    return master_version.toString() + "." + versionCount.toString()
}
#build.gradle
android {

    defaultConfig {
        ...
        versionCode voiceSupport_versionCode
        versionName voiceSupport_versionName
      ...
      
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容