Android API Levels

This is an overview of all Android versions and their corresponding identifiers for Android developers. Anyone is welcome to open an issue or pull request. Happy developing!

Version SDK / API level Version code Codename Cumulative
usage 1
Year 4
Android 15 DEV Level 35 VANILLA_ICE_CREAM Vanilla Ice Cream 2 TBD
Android 14 Level 34 UPSIDE_DOWN_CAKE Upside Down Cake 2 12.6% 2023
Android 13 Level 33 TIRAMISU Tiramisu 2 41.4% 2022
  • targetSdk must be 33+ for new apps and app updates since August 31, 2023.
Android 12 Level 32 Android 12L S_V2 Snow Cone 2 58.5%
Level 31 Android 12 S 2021
Android 11 Level 30 R Red Velvet Cake 2 75.0% 2020
Android 10 Level 29 Q Quince Tart 2 84.0% 2019
Android 9 Level 28 P Pie 90.0% 2018
Android 8 Level 27 Android 8.1 O_MR1 Oreo 92.1% 2017
Level 26 Android 8.0 O 95.1%
Android 7 Level 25 Android 7.1 N_MR1 Nougat 95.6% 2016
Level 24 Android 7.0 N 97.0%
Android 6 Level 23 M Marshmallow 98.4% 2015
Android 5 Level 22 Android 5.1 LOLLIPOP_MR1 Lollipop 99.2%
Level 21 Android 5.0 LOLLIPOP, L 99.5% 2014
Android 4 Level 20 Android 4.4W 3 KITKAT_WATCH KitKat 99.8%
Level 19 Android 4.4 KITKAT 2013
Level 18 Android 4.3 JELLY_BEAN_MR2 Jelly Bean 99.8%
Level 17 Android 4.2 JELLY_BEAN_MR1 99.8% 2012
Level 16 Android 4.1 JELLY_BEAN 99.8%
  • Google Play services v14.8.39+ (December 2018) drops support for API levels below 16.
Level 15 Android 4.0.3 – 4.0.4 ICE_CREAM_SANDWICH_MR1 Ice Cream Sandwich 99.9% 2011
Level 14 Android 4.0.1 – 4.0.2 ICE_CREAM_SANDWICH
Android 3 Level 13 Android 3.2 HONEYCOMB_MR2 Honeycomb No data
Level 12 Android 3.1 HONEYCOMB_MR1
Level 11 Android 3.0 HONEYCOMB
Android 2 Level 10 Android 2.3.3 – 2.3.7 GINGERBREAD_MR1 Gingerbread
Level 9 Android 2.3.0 – 2.3.2 GINGERBREAD 2010
Level 8 Android 2.2 FROYO Froyo
Level 7 Android 2.1 ECLAIR_MR1 Eclair
Level 6 Android 2.0.1 ECLAIR_0_1 2009
Level 5 Android 2.0 ECLAIR
Android 1 Level 4 Android 1.6 DONUT Donut
Level 3 Android 1.5 CUPCAKE Cupcake
Level 2 Android 1.1 BASE_1_1 Petit Four
Level 1 Android 1.0 BASE None 2008

Definitions

Gradle files

Kotlin variable Groovy variable Definition
minSdk minSdkVersion The minimum SDK version your app will support, defined in build.gradle. For example, if your minSdk is 26, this SDK version corresponse to API Level 26 and Android 8, so your app will only run on devices with Android 8 or higher.
targetSdk targetSdkVersion The SDK version that your app targets, defined in build.gradle. This should always be the same as compileSdk.
compileSdk compileSdkVersion The SDK version that your app compiles against, defined in build.gradle. Android Studio uses this SDK version to build your AABs and APKs. This should always be the same as targetSdk.

Code files

Variable Definition
Build.VERSION.SDK_INT The SDK version of the Android OS currently running on the user's device. For example, on a device running Android 11, this value will be 30 (aka Build.VERSION_CODES.R), even if the target and compile SDK of the app is different.

Footnotes

  1. Cumulative usage distribution figures were last updated on March 16, 2024 using data from Statcounter GlobalStats and this script. These figures may have changed significantly since the last update. You may update the figures yourself with a pull request.

  2. The codenames for Android 10 and above in the table are the internal codenames. Beginning with Android 10, Google dropped the usage of codenames publicly.

  3. Android 4.4W is the first Android release for Android Wear.

  4. The years represent the year of first stable release of each version. The release dates are from android.os.Build.VERSION_CODES including later versions' years from the Official Android blog (12, 12L, 13, 14)

See also