Thursday, April 5, 2012

Size of the Android's Fragments

MkII-HE-2
Everybody knows that Android fragmentation is killing the platform. Android devices come in so many different forms that it is impossible for developers to cover them all, costs are killing them, and many already decided to switch to more homogeneous platforms.

Knowing that, Google's decision to make fragmentation data public seems to be completely unreasonable. That can only repel developers. To speed up this process, I took data from Google's Android dashboard and Nielsen statistics about smartphone marketshare and did some math.

Operating System Fragmentation

Most painful issue is probably Android OS fragmentation. Data in dashboard are grouped by API level. If you write application for specific API level, it will work on higher/newer, but not on lower/older one. Top Android version is Gingerbread 2.3.3+ (API 10), with fragment 63.2% large. As Android currently occupies 48% of the smartphone market, it means that this single version occupies 30.3% percent of total smartphone market. Add newer, backward compatible versions and percentage goes to 33,3%

Second strongest contender, iPhone, occupies 32%. For the sake of simplicity, I will assume that all of iPhones are running on the same version of the iOS. Conclusion:

Single version of Android have similar market share as all iPhones together.

Stepping back a bit to Android 2.2. This was first version that was considered suitable for well performing applications. It is also second most popular version, with fragment 23.1% big. Make application compatible with it, add up all later versions and you will cover 93% percent of the Android and 44.64% of total market.

As seasoned Java 2 ME developer, I know that I'm oversimplifying things. Vendors always find the way to introduce incompatibilities into devices, which are officialy certified as compatible. Developers are sometimes forced to use unoficial APIs. Is it such a large issue? It would be interesting to collect that kind of statistics.

Multiple Screen Sizes

If it's not the OS, what else could be the problem? Probably the screen size. There is a huge number of different screen sizes, resolutions and densities used by Android phone manufacturers, so that's must be cause of the problem, right? To use screen in best possible way, applications should use different layout for small and big screens, and for bitmaps to look good, they should have high and low resolution pictures. How to develop for all those devices?

Android has simple approach: there are four descriptive sizes (small, normal, large, XL) and six densities (ldpi, mdpi, hdpi, xhdpi, nodpi and tvdpi). Screen ratio can be either notlong (i.e. standard) or long (i.e. taller or wider that standard). This gives whooping 48 combinations. Luckily, Google provides statistics for screens, too. 64.6% of the devices are normal hdpi and 19.6% are normal mdpi. Going back to market share, with just one resolution you can cover 31% of total smartphone market and with two you will cover more than 40%.

Support for single Android screen size covers 31% of total smartphone market.

What's bigger: Android's fragment or somebody else's entirety?

Update: Real-world story about Android fragmentation from game developer. Must read!

Y8RJZ22257MQ

No comments:

Post a Comment