When building an Android app, how should you choose the minimum Android version? This choice determines the oldest version of Android that your app can be installed on. For example, if you choose a minimum version of 4.1, then none of your potential customers with Android version 4.0 or lower can use your app.
At first glance the answer may seem obvious. More potential users is good so all versions should be supported. However, this is a naive viewpoint as your project will be impacted in other ways.
Active devices January 7th 2015 as measured by the Google Play Store
Generally speaking, the more versions an app supports the more expensive the development will be. One reason for this is that there are more moving parts. All APIs used must be level checked and if an API is not available, it may require creating work arounds or changing which components are used. Google does provide a pretty good backward compatibility layer but it’s not comprehensive.
QA is also impacted with more OS versions to test, more devices to test, and more bugs to report. Then developers have to fix those additional bugs, which may only occur in obscure situations or edge cases. Development is already expensive so this is a significant impact. Since time is closely related to cost the other side of the coin is it can take longer to ship an app when supporting more versions.
User experience can also be affected by minimum version. One example of this is project butter which came in Android 4.1. Techradar explains, project butter “answered complaints that Android wasn't as smooth as it could be by making everything faster and more responsive. The effects were profound and brought Android a lot closer to the slickness found on Apple devices.”
Bluetooth low energy (aka Bluetooth 4.0, Bluetooth Smart) devices were not supported until Android 4.3. Android supported older versions of Bluetooth before this. However, BTLE is the standard being supported by almost all new companion devices: fitness bands, healthcare devices, watches, etc.
As for the best choice, it's hard argue for anything less than 4.1 (Jelly Bean, level 16) given that this reaches over 85% of the market already and this number is still growing. As for the brand new Android 5.0, even with miniscule market share this is actually a great choice when you have a captive audience, like an internal app at a company that is standardizing on new devices. Going 4.2 or higher is hard to justify as the user base quickly starts to approach 50% or less. Normally this would only be justifed if a specific feature was essential to the app and no workaround was available.
There are other factors in choosing one of the 21 API levels of Android, but hopefully you’ll agree this is not a one size fits all decision. Be sure to always check the latest Android version market share numbers. Also note the market share numbers here are cumulative to show the total user coverage you’ll get, while Google’s numbers apply to a particular version.