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
Android 13 Level 33 TIRAMISU Tiramisu 2 No data 2022
Android 12 Level 32 Android 12L S_V2 Snow Cone 2
Level 31 Android 12 S 20.7% 2021
Android 11 Level 30 R Red Velvet Cake 2 50.3% 2020
Android 10 Level 29 Q Quince Tart 2 72.1% 2019
Android 9 Level 28 P Pie 82.9% 2018
Android 8 Level 27 Android 8.1 O_MR1 Oreo 88.4% 2017
Level 26 Android 8.0 O 91.1%
Android 7 Level 25 Android 7.1 N_MR1 Nougat 92.5% 2016
Level 24 Android 7.0 N 95.1%
Android 6 Level 23 M Marshmallow 97.4% 2015
Android 5 Level 22 Android 5.1 LOLLIPOP_MR1 Lollipop 98.8% 2015
Level 21 Android 5.0 LOLLIPOP, L No data 2014
Android 4 Level 20 Android 4.4W 4 KITKAT_WATCH KitKat
Level 19 Android 4.4 KITKAT 2013
Level 18 Android 4.3 JELLY_BEAN_MR2 Jelly Bean
Level 17 Android 4.2 JELLY_BEAN_MR1 2012
Level 16 Android 4.1 JELLY_BEAN
Level 15 Android 4.0.3 – 4.0.4 ICE_CREAM_SANDWICH_MR1 Ice Cream Sandwich 2011
Level 14 Android 4.0.1 – 4.0.2 ICE_CREAM_SANDWICH
Android 3 Level 13 Android 3.2 HONEYCOMB_MR2 Honeycomb
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 August 9, 2022 using data from Statcounter GlobalStats. 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. In 2022, Google began imposing minimum targetSdk requirements for existing apps, in addition new apps and app updates. Existing apps that are not updated to meet targetSdk requirements by their deadlines will be subject to restrictions. This requirement excludes Wear OS apps.

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

See also