Android Screen Densities; What You See May Not Be What You Get.

Since Android 1.6 Google have been asking developers to use specific size and density groupings for their graphical resources to ensure that their user interfaces looked good on a range of devices, but unfortunately developers are not fully supporting it and now OEMs are making their devices report the wrong densities.

I’ve blogged before about developers not supporting the various sizes and densities fully which resulted in UIs which look odd and empty on tablets, but OEMs reporting the wrong densities seems to be a new phenomenon which means even if a developer provided graphic assets for all the screen sizes and densities Android supports they may still see the wrong assets being used and their UI looking odd on some devices through no fault of their own.

The first device I heard about which was getting things wrong was the Archos 70; The specs clearly show it as having a 7" display with a resolution of 800x480 which equates to roughly 135dpi which puts it in the low density category. I was fortunate enough to get someone to run a small program which uses Androids methods for reporting screen density and the device reported back that it was medium denisty, which is simply wrong.

Now the Archos is a budget end tablet which has a few of the expected Android features missing (e.g. GPS and Cellular connectivity), and doesn’t have the approval to run Google apps, so I though that they may have just streached the rules a little bit to benefit from work done for true mdpi devices such as the Dell Streak, so I was pretty surprised to find out that Google approved devices may incorrectly report their density as well.

The first hint of an “approved” device reporting the wrong density came from a tweet from Reto Meier about the Samsung Galaxy Tab. Reto is a great guy whose main focus is helping developers, and if you’ve ever read his book you’ll know he knows his stuff, so if Reto says it’s reporting HDPI I don’t doubt for a second it reports HDPI, and I feel no need to ask anyone to run my little app to check it. The problem is a 1024x600 resolution 7" screen has a density of 170dpi, which according to Googles specs is MDPI.

We’ll start to see the real world effects of density misrepresentation in the coming months as these devices go on sale, and we may find many users don’t notice any problems, but approving devices which don’t meet specifications is invariably a road to development hell. Google have said “User Experience” is something they want to concentrate on for the next Android release so approving devices which report UI information incorrectly is not a road they should start going down, and as a developer whose travelled the road of devices which don’t meet the specs before, I know it’s not a road I want to be on either.

So what do you think?, should OEMs be forced to follow the rules?, should we abandon the density & size groupings and the problems the present?, or should everyone try to keep calm and carry on?

_If you want to check the density a device should be reporting you can use a dpi calculator to find out the pixel density, and the Googles resources qualifiers chart to find the corresponding density. _

Update: Reto Meier has informed me he believes the Google resource qualifiers page which shows the dpi to screen density type mapping is incorrect.

droidcon London logo