/why_bump_android_minsdk

Why you should bump your Android app minsdk?

MIT LicenseMIT

You should always keep bumping your minSdk version for the Android app. Newer API levels (OS versions in Android) come with more fixes and features that you can start using. But if you're required to make that case, this document should help.

What you get:

Features:

Android Studio currently already provides a neat listing (with a picker and all) everytime you create an Android Studio project. For the lazy, i'll include a screenshot from each of those APIs.

If there's a feature not on that list, that you think is worth calling out, send a PR and we'll add it here!

Bugs:

Sometimes there are terrible bugs/limitations with OS versions (or the phone manufacturer variant of that OS). If you notice these and want to make the world for AndroidDev better, send a PR and we'll add it here!

Features that are not user facing:

There are programmer facing features like language features (Lambdas, method references, try with resources) that are hugely critical for developers. These are usually not called out in that new Android Studio project creator listing. If you know of these and want to make the lives of other AndroidDev better, send a PR!

minSdkVersion 25 (7.1) Nougat

minSdkVersion 24 (7.0) Nougat

  • Multi-Window Support
  • Java 8 language features and API (Note: some of the known and loved features like Lambdas and Method references are already available via Android Studio. However certain other features like Streams, functions, FunctionalInterface etc. are only available from 24. See linked doc for details).

minSdkVersion 23 (6.0) Marshmallow

api 23 features

minSdkVersion 22 (5.1) Lollipop

api 22 features

minSdkVersion 21 (5.0) Lollipop

api 21 features

minSdkVersion 19 (4.4 - 4.4.4) KitKat

api 19 features

minSdkVersion 18 (4.3.x) Jelly Bean

api 18 features

minSdkVersion 17 (4.2.x) Jelly Bean MR1

api 17 features

  • Samsung bug with RTL (you need to have some padding on everything, otherwise Samsung will blow up cause they overrode or had their own version of rtl before Android had it built in?). Listen to this Fragmented episode with Dan Lew where he talks about it.
  • WebP support (but not lossless, see note in API 19)
  • Location objects send back elapsed realtime nanoseconds (this is important for getting the "age" of the location fix)

minSdkVersion 16 (4.1.x) Jelly Bean

api 16 features

minSdkVersion 14 (4.0.1 - 4.0.2) Ice Cream Sandwich

  • Holo theme introduced
  • USB On-The-Go support.

minSdkVersion < 14

No, don't use anything below 14 please.

Resources