Zygote
Studybeginner

Version cheat sheet

Every API level, Android version, internal codename and release month, in one printable table generated from the version dataset.

7 minAPI 1–37 · 17interactivequizverified 2026-10-27

The lookup table. Generated at build time from data/versions.json, so it cannot disagree with any page on the site.

TL;DR#

  • targetSdk and minSdk are API levels, not version numbers.
  • Android 12 and 12L are API 31 and 32: the marketing version and the API level are not the same axis.
  • The internal codename continues past the public dessert names. Android 10 onward have codenames (Quince Tart, Red Velvet Cake, Snow Cone, Tiramisu, Upside Down Cake, Vanilla Ice Cream, Baklava, Cinnamon Bun) but no public dessert branding.

Mental model#

Two ladders leaning against the same wall. One is labelled with what the box says ("Android 13"), the other with what the code checks (Build.VERSION.SDK_INT >= 33). Most confusion comes from reading one ladder and quoting the other.

Where the analogy breaks#

The ladders are not evenly spaced. Some rungs took three months, some took eighteen, and one rung (API 20) existed only for watches.

The big picture#

Loading diagram…
Text description of this diagram

The Android stack with a version axis. Each release changes different layers: some are runtime changes, some are framework API changes, some are vendor interface changes. The table below is the lookup for mapping between them.

Deep dive#

APIVersionCodenameReleasedRuntime
11.0BASE2008-09Dalvik
21.1BASE_1_12009-02Dalvik
31.5CUPCAKE2009-04Dalvik
41.6DONUT2009-09Dalvik
52.0ECLAIR2009-10Dalvik
62.0.1ECLAIR_0_12009-12Dalvik
72.1ECLAIR_MR12010-01Dalvik
82.2FROYO2010-05Dalvik
92.3GINGERBREAD2010-12Dalvik
102.3.3GINGERBREAD_MR12011-02Dalvik
113.0HONEYCOMB2011-02Dalvik
123.1HONEYCOMB_MR12011-05Dalvik
133.2HONEYCOMB_MR22011-07Dalvik
144.0ICE_CREAM_SANDWICH2011-10Dalvik
154.0.3ICE_CREAM_SANDWICH_MR12011-12Dalvik
164.1JELLY_BEAN2012-07Dalvik
174.2JELLY_BEAN_MR12012-11Dalvik
184.3JELLY_BEAN_MR22013-07Dalvik
194.4KITKAT2013-10Dalvik
204.4WKITKAT_WATCH2014-06Dalvik
215.0LOLLIPOP2014-11ART
225.1LOLLIPOP_MR12015-03ART
236.0M2015-10ART
247.0N2016-08ART
257.1N_MR12016-10ART
268.0O2017-08ART
278.1O_MR12017-12ART
289P2018-08ART
2910Q2019-09ART
3011R2020-09ART
3112S2021-10ART
3212LS_V22022-03ART
3313TIRAMISU2022-08ART
3414UPSIDE_DOWN_CAKE2023-10ART
3515VANILLA_ICE_CREAM2024-10ART
3616BAKLAVA2025-06ART
3717CINNAMON_BUN2026-06ART

How it evolved#

See the Time Machine for the same data as an interactive axis.

Curiosity corner#

  • The codename for Android 9 is just "P" publicly, though internally it was Pistachio Ice Cream.
  • API 20 exists only for Android Wear. No phone ever shipped it.

Try it#

Ask a device what it is

adb shell getprop ro.build.version.sdk adb shell getprop ro.build.version.release

Check yourself#

Check yourself

1 / 12

What does an API level identify?

0 answered · 0 correct

Sources#

Sources

Every version number, API level, class name and date on this page is traced to one of these. Pages are re-verified against them; last_verified above says when.

  1. docs<uses-sdk> | App architecturedeveloper.android.comaccessed 2026-10-27↩
  2. docsBuild.VERSION_CODES | API referencedeveloper.android.comaccessed 2026-10-27↩
  3. docsAndroid releases and versionsdeveloper.android.comaccessed 2026-10-27↩