I am trying to release an update of an existing Android application.
What is the correct way of versioning an Android application?
Here Developer guide I found that format may be <major>.<minor>.<point>
.
Can someone please explain me what each of major
, minor
and point
mean?
Android System SettingsOnce in Settings, tap Apps and notifications (or your phone manufacturer's name it). When you're in there, tap See all xyz apps (where xyz is the number of apps you have installed). Now scroll down until you find the app you want to find the version for. Then tap it in the list.
The version code is an incremental integer value that represents the version of the application code. The version name is a string value that represents the “friendly” version name displayed to the users.
androidVersionCode
is an integer that you increase with each update. So the first version could be 1, the next update could be 2, etc.
androidVersionName
is just a string value that you decide - it's displayed on Google Play.
The documentation refers to <major>.<minor>.<point>
as a suggested format for the versionName, e.g. version 1.1.1 or 2.0.4. It's up to you, but there's a good explanation here.
The usual method I have seen is X.Y.Z, which generally corresponds to major.minor.patch:
Major version numbers change whenever there is something significant, a large or potentially backward-incompatible change to a software package.
Minor version numbers change when a new, minor feature is
introduced, or when a set of smaller features is rolled out.
Patch numbers change when a new build of the software is released to customers. This is normally for small bugfixes or the like.
Other variations use build numbers as an additional identifier, so you may have a large number for X.Y.Z.build if you have many revisions that are tested between releases. A couple packages I use are identified by year/month or year/release, so a release now might be 2010.9 or 2010.3 for the 3rd release of this year.
There are many variants on versioning, it comes down to personal preference.
For the "1.3v1.1" that may be two different internal products, something that would be a shared library / codebase that is rev'd differently from the main product. That may indicate version 1.3 for the main product, and version 1.1 of the internal library / package
As long as you update android:versionCode
each time, it doesn't really matter what you put into android:versionName
. It can be three different numbers or any other string, e.g. "1.0.0", "a", or "best release ever".
This is a general discussion of Software Versioning from Wikipedia.
The version code is an integer and must be strictly increasing with each new version.
The version name is totally up to you. A scheme that is often used is x.y where x is incremented for really big changes (maybe even introducing incompatibilities with previous versions), while y is incremented for minor changes.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With