Hier nun ein kleines Tutorial wie man im Gradle build die Versionsnummer inkrementiert (+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));