Backwards Compatibility


More than 60% of devices now run Jellybean and ICS. Gingerbread isn’t going away, but its usage is declining (down 10% from when this book was published). When would be a good time to stop supporting those versions? Is that time now?


Good question!

The word from Google is that the time is now: ditch Gingerbread, and make your minSdkVersion ICS 4.0. You can also see this push from community luminaries like Jake Wharton, as well as whoever’s behind the


There’s a strong case to be made that this is too aggressive. Most Android devs don’t target Android because of the quality of the market - they target Android because of the size of the market. If you’re going for size, ditching 30% of the market doesn’t make a lot of sense. When I floated the prospect of ditching Gingerbread, most devs I heard from did not take the idea seriously.

So what do I recommend, personally, today?

If nothing is more important for you than market breadth, use minSdk 2.3.3.

If you’re starting a new app today, and you want it to be animation rich, use minSdk 4.0. Compatibility options are there for 2.3, but they’re not perfect.

If you’re writing an app that leans heavily on audio/video, use minSdk 4.0. (And good luck - this is still not easy, even on 4.2.)

If neither of the above apply, you should be fine with minSdk 2.3.3. Compatibility strategies described in our book and elsewhere are relatively painless, and can achieve great results.

Anyway - the time to switch to 4.0 is creeping up sooner than I thought it would. And that’s a good thing. I’ll try to keep you guys updated as the landscape changes.