Interesting Tidbits from the Latest Device Dashboards

I don’t normally comment on the creeping changes in the Android ecosytem illustrated by the device dashboards, but I did want to point out a few things that I found interesting, or that you might be forgetting.

On the forgetting front, please remember that these dashboards only reflect devices accessing the Play Store. Devices that do not have the Play Store will not show up. Notably, this will include popular devices like the Kindle Fire series. If you are only distributing through the Play Store, the dashboards should be a solid picture. If you are distributing through other channels, though, take into account that those other channels may get you to devices that are not reflected in the dashboards.

This month probably is the last one for Android 1.x, as Android 1.6 is down to 0.1%, the threshold of irrelevance from the dashboard perspective. By this point in time, even if you are trying to maintain compatibility with Android 1.6, you should no longer be limiting your app to only 1.6 features. Set your build target and android:targetSdkVersion to be something newer, and using Java version guards (using Build.VERSION.SDK_INT) and Lint warnings to opt into newer capabilities. IOW, don’t let backwards compatibility be the albatross around your neck.

(not to mention that decaying albatrosses probably start to stink)

The Gingerbread decline continues apace. I expect that it will fall to 15% or lower by the end of 2013, despite the fact that Gingerbread devices are still made and sold. Frankly, I am expecting OEMs that are still shipping Gingerbread to cast a long look at Firefox OS as an alternative to Android, if they determine that Gingerbread has gotten stale, yet they feel that they cannot offer low-end ICS or higher devices.

What surprised me the most, though, was that xxhdpi devices are already up to 1.3%. These will be your SONY Xperia Z, Droid DNA, and similar 1080p handsets. Many apps will not need to worry immediately about this, as xhdpi assets will be upsampled and will work. The apps that really need to ponder this, plus the 1.0% tvdpi tablets (presumably all Nexus 7’s), will be those using <compatible-screens> to try to block their app from larger-screen devices. If you do not include support for all densities, you will be blocked from the missing densities as well. Alas, there is a bug in manifest parsing that may preclude you from using tvdpi and xxhdpi as symbols, forcing you to use numeric equivalents (e.g., 480 for xxhdpi) as an alternative. Or, get your app’s large-screen support up to snuff and get rid of <compatible-screens> entirely.

Learn second-generation Android app development — with Kotlin and the Android Jetpack — through CommonsWare’s Android app development training!