Android Fragmentation

Android fragmentation.  Those two words carry tons of weight in the community of mobile applications developers.  Fragmentation is going to happen, sooner or later, for any open source software project.  Fragmentation occurs when software source code is released to the public and may be freely modified to fit the individual needs of an organization or person.  A great example of fragmentation that we are all familiar with is Linux.  There are numerous versions of Linux freely available depending on one’s needs.  Android is becoming fragmented at such a rapid pace that it is becoming a burden on developers.

A study conducted by OpenSignalMaps.com found that 3997 different devices appeared at least once in their database, 1363 of these devices appeared only once.  They also cite the fact that custom ROMs can be used to overwrite the android.build.MODEL, which would cause custom devices to appear as a completely different model.  This is exactly the type of problem that happens with open source software projects.  There are just entirely too many devices, as well as too many versions of android, to provide support for.

The study also cites that OpenSignalMaps registered data from 195 different countries.  This is a terrific victory for open source projects all over the world.  Android has spread across the globe at an incredible rate.  This shows that a great idea, such as an open source mobile operating system, can become wildly successful when released to developers so that they may find innovative and new uses for the project.

With such rapid growth and expansion comes a litany of new problems.  Different languages, screen sizes, screen resolutions, device sensors, and a variance in processors are just a few of the problems that android is facing.  In May 2001, Google formed an android anti-fragmentation coalition with some of the most prevalent handset makers in the world, such as Samsung and HTC, to try to combat the rapid fragmentation of android.   The anti-fragmentation coalition has done little if anything to help combat fragmentation over the past year.

As reported by OpenSignalMaps, in April 2011, 65.6 percent of android users were using android version 2.3.  One year later, April 2012, 55.4 percent are still using android version 2.3.3+.  That wouldn’t seem so bad if the highest version of android available was 3.1, but it isn’t.  The highest version of android available in April 2012 was 4.0.4.

This is a very big problem for the android development community.   Many of the new and best features of android can only be used with android 3.* and higher.  Because over 50 percent of android users cannot use these features, application developers and companies lose half of their target audience.  This is bad for both development organizations and the whole android project.

In order to continue progression, Google, or some highly motivated developers, must come up with a plausible solution for devices to be easily upgraded.  This is where Apple’s iOS has hit the nail on the head.  Although Apple must support upgrades for only one handset, they have done a wonderful job of making upgrading to the newest iteration of iOS as quick and easy as possible.  To upgrade an iOS device one must only plug the device into the machine the device is synced with and iTunes does the rest.  When attempting to upgrade to the newest version of android for one’s mobile device, one is usually directed to the handset manufaturer’s site, where one can begin a slightly complex task of upgrading, if the device is even supported.

One can argue that manufacturers discontinue support or upgrades to handsets in order to force customers to buy a new handset in order to enjoy all of the latest a greatest android features.  This business model is great from the standpoint of the manufacturers, but causes the dismay of many customers, since most consumers only buy a  new handset every couple of years.  I also realize that ongoing support for handsets older than two years would be a waste of time, but manufacturers should at least be required to offer upgrade support for 18 months after the release of the handset.  With android coming out with a new iteration every few months, no one can keep buying handsets at that rate.

My suggestion for a fix to this issue is a central repository, ideally sponsored and maintained by Google, where one can go and get the highest supported version of android for his/her handset.  If the Open Handset Alliance enforced rules requiring manufacturers to contribute their particular flavors of android to the repository, fragmentation may slow.  This isn’t an extremely hard problem to solve.  One would think that in a field full of so many great and innovative minds that this problem would have been solved.