Understanding Android API versions is essential for any developer building for the mobile ecosystem. Each new release of the Android operating system introduces a specific API level, which acts as a numerical identifier for the capabilities and restrictions available to an application. This versioning system dictates which hardware features and software frameworks a developer can access, ensuring a consistent experience across the diverse landscape of devices.
The Relationship Between Android Release and API Level
The public-facing marketing name for an Android release, such as Cupcake or Lollipop, is often more memorable than its corresponding API level. However, the numerical API level is the critical data point used by the Android build tools and the Google Play Console. This number increases sequentially with each new version, allowing developers to target specific functionality or set minimum requirements for their applications. The table below outlines the most significant versions and their corresponding identifiers.
Android Release | API Level | Status
Lollipop | 21, 22 | Legacy
Marshmallow | 23 | Legacy
Nougat | 24, 25 | Legacy
Oreo | 26, 27 | Legacy
Pie | 28 | Legacy
Android 10 | 29 | Legacy
Android 11 | 30 | Legacy
Android 12 | 31, 32 | Current
Android 13 | 33 | Current
Android 14 | 34 | Current
Targeting vs. Minimum SDK
When configuring an app module, developers define two crucial values: the minimum SDK version and the target SDK version. The minimum SDK dictates the oldest version of Android the app will install on, which directly impacts the potential user base. Setting this value too high excludes users with older devices, while setting it too low may require developers to implement backward compatibility libraries for newer features.
The target SDK version informs the system how the app should behave with the latest changes to privacy and security. Google Play requires apps to target a recent API level to ensure compatibility with modern security practices. An app that targets an older SDK might not handle background restrictions or permission changes correctly on a newer device, leading to a poor user experience.