Android, Gradle Buildnummer und Zeitstempel

Hier nun ein kleines Tutorial wie man im Gradle build die Versionsnummer incrementiert (+1) und einen Zeitstempel des builds in eine Properties Datei speichert.

Speichern der Werte in einer Properties Datei

Als erstes müssen wird die beiden Werte (VERSION_CODE & BUILD_TIMESTAMP) in einer Properties Datei speichern.
Diese Datei wird relativ zum Pfad des „src“ Ordners abgelegt.

 def Properties versionProps = new Properties()
    def versionPropsFile = file('version.properties')
    def code = ''
    def buildtimestamp = ''
    if(versionPropsFile.exists()){
        versionProps.load(new FileInputStream(versionPropsFile))
        code = (versionProps['VERSION_CODE'] ?: "0").toInteger() + 1
        versionProps['VERSION_CODE'] = code.toString()

        buildtimestamp = getDate()
        versionProps['BUILD_TIMESTAMP'] = buildtimestamp

        versionProps.store(versionPropsFile.newWriter(), null)
    }

Erstellen eines Zeitstempels

Ein Zeitstempel kann mit folgender Methode erstellt werden.

def getDate() {
    def date = new Date()
    return date.format('yyyy-MM-dd')
}

Für das Formatieren des Zeitstempels können die Werte aus dem SimpleDateFormat verwendet werden.

Verwenden der gespeicherten Werte

In dem Abschnitt „defaultConfig“ können nun die beiden Variablen „code“ & „buildtimestamp“ verwendet werden.

defaultConfig {
  applicationId "xyz.stefandraegersoftware.de.xyz"
  minSdkVersion 17
  targetSdkVersion 22
  versionName "1.0 " + buildtimestamp
  versionCode code
}

Auslesen der Werte im Java Quellcode

Möchte man nun die gespeicherten Werte in einer Android Activity anzeigen so kann man ganz einfach wie folgt darauf zugreifen:

//versionName
this.versionTextView.setText(String.valueOf(BuildConfig.VERSION_NAME));
//versionCode
this.buildTextView.setText(String.valueOf(BuildConfig.VERSION_CODE));

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.