12

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?

Trinimon
  • 13,620
  • 9
  • 42
  • 60
Rage
  • 161
  • 1
  • 3
  • 10

5 Answers5

13

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.

Community
  • 1
  • 1
ashatte
  • 5,294
  • 8
  • 38
  • 49
  • You would increase if your update included a bug fix or something simple. It would imply that no major features have changed in that update, yet it is still a newer version, hence an increased version number. – ashatte Sep 24 '13 at 06:09
  • Thank you :) This is what i was expecting for :) sorry for asking again about because i didn't see the link you had given :) – Rage Sep 24 '13 at 06:24
5

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

Lokesh
  • 5,258
  • 4
  • 26
  • 43
2

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.

Szymon
  • 41,995
  • 16
  • 94
  • 113
1

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.

Henry
  • 41,816
  • 6
  • 58
  • 77
0

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when you make incompatible API changes,
  • MINOR version when you add functionality in a backwards-compatible manner, and
  • PATCH version when you make backwards-compatible bug fixes.

I wrote a post about versioning android apps: https://blog.dipien.com/versioning-android-apps-d6ec171cfd82