Android Version History

Android version history from API level 1 to API level 36

Android has evolved significantly since its first commercial release in 2008. It started as a simple smartphone operating system and has become a global platform for phones, tablets, foldable devices, televisions, cars, watches, and other smart devices.

Every Android release has both an Android version and an API level. For example, Android 15 is API level 35, while Android 16 is API level 36.

What Is an Android API Level?

An API level is a number used to identify a specific version of the Android application programming interface. Developers use it to determine which Android features are available and which devices can install an application.

Simple analogy: The Android version is like a car model name, while the API level is its technical specification number. Users normally recognise the model name, but developers use the technical number to ensure compatibility.

Complete Android Version History and API Levels

Android Version Codename API Level Year
Android 1.0No public codename12008
Android 1.1No public codename22009
Android 1.5Cupcake32009
Android 1.6Donut42009
Android 2.0–2.1Eclair5–72009–2010
Android 2.2Froyo82010
Android 2.3Gingerbread9–102010–2011
Android 3.0–3.2Honeycomb11–132011
Android 4.0Ice Cream Sandwich14–152011
Android 4.1–4.3Jelly Bean16–182012–2013
Android 4.4KitKat192013
Android 4.4WKitKat for Wear202014
Android 5.0–5.1Lollipop21–222014–2015
Android 6.0Marshmallow232015
Android 7.0–7.1Nougat24–252016
Android 8.0–8.1Oreo26–272017
Android 9Pie282018
Android 10No public dessert name292019
Android 11No public dessert name302020
Android 12Snow Cone (internal)312021
Android 12LSnow Cone v2 (internal)322022
Android 13Tiramisu (internal)332022
Android 14Upside Down Cake (internal)342023
Android 15Vanilla Ice Cream (internal)352024
Android 16Baklava (internal)362025

Important Android Milestones

Android 1.5 Cupcake — API Level 3

Cupcake introduced the on-screen keyboard, home-screen widgets, and video recording. It also began Android's well-known tradition of using dessert names.

Android 4.0 Ice Cream Sandwich — API Levels 14–15

Ice Cream Sandwich unified the previously separate phone and tablet interfaces. This created a more consistent Android platform across different device sizes.

Android 5.0 Lollipop — API Level 21

Lollipop introduced Material Design and replaced Dalvik with the Android Runtime. These changes modernised Android's appearance and improved application performance.

Android 6.0 Marshmallow — API Level 23

Marshmallow introduced runtime permissions. Instead of approving every permission during installation, users could decide whether to allow sensitive access when an application needed it.

Android 8.0 Oreo — API Level 26

Oreo introduced notification channels and stronger background-execution limits. Developers gained more control over notifications but also needed to manage background tasks more carefully.

Android 10 — API Level 29

Android 10 marked the transition from public dessert names to numerical version names. It introduced system-wide dark theme, gesture navigation, scoped storage, and stronger privacy controls.

Android 12 — API Level 31

Android 12 introduced Material You, the Privacy Dashboard, microphone and camera indicators, and a major visual redesign.

Android 15 — API Level 35

Android 15 strengthened privacy and security while improving support for large-screen devices. Important developer changes included edge-to-edge display enforcement for applications targeting API level 35 and support for devices using 16 KB memory pages.

Android 16 — API Level 36

Android 16 continued the focus on adaptive applications, stronger security, richer haptics, improved notifications, health permissions, and better experiences across phones, tablets, foldables, and larger displays.

Understanding minSdk, targetSdk, and compileSdk

An Android project normally contains three important SDK settings:

android {
    compileSdk = 36

    defaultConfig {
        minSdk = 26
        targetSdk = 36
    }
}
  • compileSdk: Determines which Android APIs are available when compiling the application.
  • targetSdk: Indicates the newest Android behaviour for which the application has been designed and tested.
  • minSdk: Determines the oldest Android version that can install the application.

For example, minSdk = 26 means the application supports Android 8.0 and newer versions. Setting targetSdk = 36 indicates that it has been prepared for Android 16 behaviour changes.

Why API Levels Matter

API levels help developers manage application compatibility. A new Android release may introduce features that do not exist on older devices. Developers must check the device API level before using such features or provide a compatible alternative.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
    // Android 13 / API level 33 or newer
} else {
    // Compatible method for older devices
}

Applications should be tested on the minimum supported API level, the target API level, and representative versions between them. Testing on only one recent phone may not reveal problems affecting older devices.

Conclusion

Android has progressed from Android 1.0 with API level 1 to Android 16 with API level 36. Each generation has improved the platform's design, performance, privacy, security, and support for different types of devices.

For users, the Android version represents a generation of the operating system. For developers, the API level provides the technical compatibility number needed to build and maintain applications. Understanding both makes Android development easier and helps ensure that applications work correctly across different devices.

Official References

Android Version History Android Version History Reviewed by Admin on 5:16 PM Rating: 5

No comments:

Powered by Blogger.