Android Versions Numbering and API Levels
The table in this article lists all the different versions of Android, starting with the earliest Application Programming Interface (API) level to the latest API level. Thus the list is from the oldest Android versions to the latest.
Android Versions by Name, Number, Availability and API Level
Each version of Android is given a code name. The code name is traditionally the name of a dessert, cake or sweet, e.g, Gingerbread, Froyo, Jelly Bean, etc. - as the sugar laden picture below shows. The table that follows lists the code names, version numbers, first release date and Application Programming Interface (API) versions, along with the equivalent Software Development Kit (SDK) constants (Build.VERSION_CODES). The Android version number on a device is normally found in the settings. Select Settings, then About Phone or About Device and look at the Firmware Version or Android Version entry.
List of Android Versions and Their Names, API Level and Dates
|Froyo||2.2 to 2.2.3||June 2010||8||FROYO|
|Gingerbread||2.3 to 2.3.2||November 2010||9||GINGERBREAD|
|Gingerbread||2.3.3 to 2.3.7||February 2011||10||GINGERBREAD_MR1|
|Honeycomb||3.2 to 3.2.6||June 2011||13||HONEYCOMB_MR2|
|Ice Cream Sandwich||4.0.1 to 4.0.2||October 2011||14||ICE_CREAM_SANDWICH|
|Ice Cream Sandwich||4.0.3 to 4.0.4||December 2011||15||ICE_CREAM_SANDWICH_MR1|
|Jelly Bean||4.1 to 4.1.1||July 2012||16||JELLY_BEAN|
|Jelly Bean||4.2 to 4.2.2||November 2012||17||JELLY_BEAN_MR1|
|Jelly Bean||4.3||July 2013||18||JELLY_BEAN_MR2|
|Kit Kat||4.4 to 4.4.4||October 2013||19||KITKAT|
|Kit Kat||4.4W to 4.4W.2||June 2014||20||KITKAT_WATCH|
|Lollipop||5.0 to 5.0.2||November 2014||21||LOLLIPOP|
|Lollipop||5.1 to 5.1.1||March 2015||22||LOLLIPOP_MR1|
|Marshmallow||6.0 to 6.0.1||October 2015||23||M|
|Nougat||7.1 to 7.1.2||October 2016||25||N_MR1|
The above table was derived from the following sources (note that some release dates are derived from the Android developers documentation, the actual SDK availability may have been a little earlier, see the Wikipedia article):
When programming an App the API level is used to determine whether specific Android features are present or not. The API level can be read in versions prior to Donut (Cupcake, 1.1 and 1.0) using:
int APILevel = Integer.parseInt(Build.VERSION.SDK);
And from Donut onwards using:
int APILevel = Build.VERSION.SDK_INT;
(Build.VERSION.SDK is deprecated, i.e. it will be removed from the API at some future release).
When using functionality from a later API, but the App needs to support earlier Android versions, wrap the newer functionality in a separate class. Then check the API level before instantiating the class to prevent a VerifyError exception from occurring. See the article Support Multiple API Versions in Android.
Author:Daniel S. Fowler Published: Updated: