Android API


API Level is an integer value that uniquely identifies the framework API revision offered by a version of the Android platform. The Android platform provides a framework API that applications can use to interact with the underlying Android system. The framework API consists of: A core set of packages and classes.

The framework API that an Android platform delivers is specified using an integer identifier called "API Level". Each Android platform version supports exactly one API Level, although support is implicit for all earlier API Levels (down to API Level 1). The initial release of the Android platform provided API Level 1 and subsequent releases have incremented the API Level.


What does API level mean?

API Levels generally mean that as a programmer, you can communicate with the devices' built in functions and functionality. As the API level increases, functionality adds up (although some of it can get deprecated). Choosing an API level for an application development should take at least two thing into account:

  •  Current distribution - How many devices can actually support my application, if it was developed for API level 9, it cannot run on API level 8 and below, then "only" around 60% of devices can run it (true to the date this post was made).
  •   Choosing a lower API level may support more devices but gain less functionality for your app. you may also work harder to achieve features you could've easily gained if you chose higher API level.

Android API levels can be divided to five main groups (not scientific, but what the heck):

  •  Android 1.5 - 2.3 (API levels 3-10) - Android made specifically for smartphones.
  •  Android 3.0 - 3.2 (API levels 11-13) - Honeycomb, Android made for tablets.
  •  Android 4.0 - 4.4 (API levels 14-19) - A big merge with tons of additional functionality, totally revamped Android version, for both phone and tablets.
  •  Android 5.0 - 5.1 (API levels 21-22) - Material Design introduced.
  •  Android 6.0 - 6.… (API levels 23-…) - Runtime Permissions,Apache HTTP Client Removed