Lately, there have been a spurt of reports and surveys detailing the concern the developer community has about Android fragmentation. But is Android fragmentation as big of a problem as it’s made out to be? Let’s take a look.
When we talk about fragmentation, we’re essentially looking at two types – Hardware fragmentation and Software fragmentation.
Hardware fragmentation is a term used to describe the fact that, at any given point in time, devices based on the same software platform are running on different types of hardware (processors, graphics chips, screen size, etc.) Now, this should be less of a worry for any developer as it is inevitable if you want to target the majority of the market.
Apple’s ecosystem has minimal hardware fragmentation (although it has increased with the Retina and non-Retina display devices, and could become even worse if screen sizes of the future iDevices are changed), however, every other software platform, from Windows to Android, faces a level of hardware fragmentation, as vendors target the market at large. Even if Windows Phone or Windows 8 on ARM manage to take off in any meaningful way, this would be a problem. As an industry matures, hardware vendors tend to consolidate their position (as in the case of Intel) and the problem takes care of itself.
So let’s take a look at the elephant in the room, which is software fragmentation. Software fragmentation is used to describe the fact that, at any given point in time, devices running on a software platform are running on different versions of the operating system. In the case of Android, competitors have long harped on that software fragmentation wastes the developers’ time, as they focus resources on making apps compatible with every available version of Android. These version differences are driven by two factors – (1) Customizing every new Android version for manufacturer specific hardware and UI customizations and (2) Customizing this manufacturer build to incorporate carrier customizations.
Having understood this, what does Android fragmentation look like?
Android Version Distribution
Most reactions would be something along these lines:
This is so messy! Why can’t manufacturers & carriers roll out updates faster? This looks like a really big problem.
The problem is, it’s really difficult to draw conclusions of any sort directly from raw data. So what can we do to make our life easier? To this end, Chris Sauve posted his analysis of Android fragmentation, based on a formula that he crafted, which seems to show an interesting pattern. The problem is, custom made formulas tend to be subjective. Let’s see what we come up with, if we run some common statistical measures on Android’s historical version distribution data (from the chart above).
Since we’re essentially going to be analyzing the distribution of Android versions across various devices, we need to look at the properties of that distribution and how it’s been changing over time. One important statistical property we need to look at is kurtosis, which is a measure of dispersion of a data set. The higher the kurtosis, the higher is the number of active Android versions, and hence, higher the fragmentation.
So how does Android fragmentation really look like?
Well, that’s much better, isn’t it? Kurtosis seems to have smoothed out Chris Sauve’s formula, by incorporating the entire data set at any given point. Even with all the manufacturer and carrier noise, this essentially shows that Android fragmentation is not a problem that’s getting worse.
In fact, fragmentation is getting more and more cyclical as Google is moving to an annual release cycle for Android. This chart shows that fragmentation peaks a few months after the release of a new Android version and falls to a low just before the next release. This is very similar to what happened with previous Windows releases, except that, in the PC market, a newly released version took years to overtake the previous version.
Aside from the annoyance this causes to us tech geeks, this fragmentation cycle actually has considerable benefits for developers. Since it currently takes about six months for a new Android version to start making inroads into the market, which is midway through the current release cycle, developers can use this time to optimize their apps for the new version. This actually avoids problems like app crashes after updates as we’ve seen on iOS. Of course, we early adopters still face this issue, but luckily, thanks to the “fragmentation” of the Android ecosystem, the larger market does not.
The recent surge in reports focusing on Android fragmentation can be attributed to the fact that we are currently at the peak of the fragmentation cycle. Android 4.0 Ice Cream Sandwich (ICS) has been the most awaited version of Android from the developers’ perspective, because of the unification of the smartphone and tablet versions. Therefore, there is a vocal minority of developers, who are disappointed with the fact that ICS still has very low market penetration. Once the cycle moves ahead, with ICS going mainstream, quite a few of the dissenting developers will be back in the fold, before the cycle starts again.
But what about app development? Don’t developers still need to take into account all the earlier Android versions when designing an app? To analyze this, let’s look at the Herfindahl Index or H-Index, which is a measure of concentration, usually applied to measure competition. Compared to kurtosis, the H-Index places greater emphasis on larger data points.The value of the H-Index varies from a minimum of 0 to a maximum of 1, with a higher value indicating a higher degree of concentration into a few Android versions. For example, the H-Index would show a maximum value of 1.0 for a single Android version across all devices, a value nearing 0.50 for two dominant Android versions, a value nearing 0.33 for three dominant Android versions, and so on.
Concentration of Android Versions
Now, this is enlightening! This shows that just as fragmentation hits its highest (a larger spread of active versions), as indicated by Kurtosis, the majority of Android devices are still concentrated into two versions, as indicated by the H-Index value nearing 0.50. Now, as the new Android version reaches higher market penetration, it increases the number of high use Android versions, and the H-Index goes down to a value of 0.30-0.40. After this, the new version replaces the oldest major active version in the release cycle, and hence the H-Index follows the same cyclical pattern.
Now, this means that at any given point in time, developers only need to focus on incorporating the last two Android versions, apart from the latest Android version or upcoming release.
As ICS updates reach flagship handsets, and new ICS handsets and tablets are released to the market over the next couple of months, ICS will start replacing Gingerbread and FroYo. Due to this, the fragmentation level should reach another low, before the release of Android 5.0 Jelly Bean.
Developer interest tends to peak and wane based on their individual capacities and experiences. But, at the end of the day, as developers begin to understand these patterns, fragmentation will not deter those looking to target the majority of the market.
Like this post? Share it!
These graphs need a more in depth analysis. Atm they are just fancy pictures
Care to elaborate? Kurtosis & the H-index measure very specific data patterns, that have been highlighted in-depth, which is the whole point of the article.
Hes right, atleast in the whole article it doesnt break down the full hardware/software fragmentation on Android..
The real problem, imo, is, OEMs continue to release handsets with old versions of Android long after the latest Android release–who’s causing that issue, Google or the handset makers, I don’t know but they need to get it together so OEMs can release new handsets with the newest version of Android asap. . . not 6+ months after the latest release.
That’s the whole point. The version history takes into account all of these factors. And even with that influence the fragmentation level still follows a specific pattern. Would it be better if all OEMs released only handsets with the latest version? Absolutely. Is the current model broken and unsustainable? Clearly, as the data shows, it’s not.
It might well be soon, software support is becoming important, buying a brand new £450 Android handset doesnt guarentee users to be able to play the lastest apps for that platform, any software releases are rolled out months late..if at all, as the manufactures and carriers use the crappy cpu intensive software skins as an excuse to delay updates and in some cases deny them, focing users into buying a new phone to get the latest software.
The whole UI of Android, whilst much improved with ICS and the addition of uber powerfull quad core processors has not banished the lag and stuttering…just looking at the HTC ONEX videos shoes some lag STILL there and someusers have reported it not being as slick as they would have hoped….this has to do with the fact that the UI on Android doesnt have priority to the CPU in the same way IOS and WP7 has, thats because it is the oldest mobile OS designed for a Keybaird and mouse, and was adapted to multiouch AFTER Google bought it and after iphone became popular.
They could do with a redesign IMHO.
Why do yoy keep putting a comma after the word since?
Lies, damned lies, and statistics.
Do I really have to point out the fact that fragmentation is a GOOD thing? Apple has minimal fragmentation because it’s a closed, proprietary system that you don’t have much control over. Android, on the other hand, has OPTIONS.
Most of the fragmentation had nothing to do with freedom…its more to do with greedy manufacturers/carriers/SOC vendors using it for thier own means.
If developers stick to pure Java code (which would be the most economical way to develop anyway), they won’t have many problems with compatibility anyway IMO.
The bigger issue here is the lack of understanding about what fragmentation means. To the uneducated, it is an expression of inconsistency and a risk to owners. In fact, the Android platform is no less “fragmented” than the browser market, the operating system market or any other fast evolving platform. Change is inevitable and the fact that Apple chooses to control their single product and its operating system does not mean it is better. It simply means there are fewer versions to manage.
However, if you looked closely at Apple, you would see that they also suffer some issues with fragmentation. However, it is mostly related to the fact the many of the users they attract are hesitant to take the updates that Apple forces because they don’t understand what it means for an update.
This whole fragmentation thing has been pushed by the iOS community to scare people away from Android. In reality, if people really understood what it meant, they would pleased to know they have more than one choice.
BS..i am thinking about buying a GS3..either that or a WP8..when it arrives..however my brand new £500 super phone wont have access to the full game library..as i wont get access to the Qualcomm game command app, neither the Tegra zone apps and games….not to mention any upgrade i want for Jellybean is likely to land some 6 months late…thanks to the sodding software skinning…
So yes even forpeople like me who actually look into things the fragmentation is becoming an annoyance i might be better off without.
You don’t need any statistical analysis. This so-called “fragmentation” problem was invented by APPLE to support themselves in their objective of taking all choice away from the user. It was NEVER a problem and NEVER needed to be addressed.
It IS a problem, different software versions floating around, different software skins, again adding to the late upgrade path (WP and IOS get near instant upgrades, not 6 months later) and thats not just it, there also software fragmentation with software..different apps will onl run on certain Android versions, also With Tegra zone and Qualcomm command gaming apps you could but the most post powerfull hardware AND STILL NOT GET TO PLAY THE BEST APPS..
And thats not counting all the different hardware variations meaning developers have to code to the lowest denominator, certain games wont run on certain handsets, its a complete mess and not some thing this article does a cery good job of explaining.
The sodding software skins are a complete unnecessary annoyance for users, they just bog the already slightly laggy UI with another sheet of cpu sapping code..thats why Android needs powerfull multicore devices to run smooth…its a complete mess, ICS was supposed to rid us of those issues..it has helped…but its just watered it all down thats all.
Wp8 is around the corner, and judging by all the glowing reviews Lumia 900 is getting i would be worried if i were Google…not to mention Windows 8!!
60% of Androids (running 2.3.x+) come enabled with built-in security features, which should bring a smile to the face of those charged with managing devices connecting to the corporate network. Should be hearing fewer complaints about staggered update releases, development drawbacks, and feature inconsistencies as more time goes on…
Android could easilly fix this mess into something more palatable….
-Make it a Android law that any manufacturer CANT put shoddy software skins on/or at least offer a vanilla option, or choice to turn it off.
-Regardless all updates MUST be put out to users within 2-3weeks.
-Upgrades and software support guarenteed for 2 major updates/regardless of contract.
-Stop companies like Qualcomm and Nvidia adding yet ANOTHER layer of fragmentation on top by banning app stores tied to certain SOC’s..like a consumer is going to understand that.
-Force all manufacturers to allow users to dump any bloatware they find on there phone, permenantly.
-Stop certain apps downloading stuff in the background, that hogs your data and drains youyr attery(usually free apps)
-Stop apps having free rain on your data..its yours!!
-Find a way to prioritise cpu tasks to better tak of the UI..that will finaly stop the laggyness sometimes.
That cant be that hard to do, and would knock this Fragmentaion on the head, most of it is selfish manufatcurers/carriers/SOC vendors adding their own software fragmentaion for there own ends..thats not Google but they have the power to syop it.
Considering Google hasn’t managed to update the Nexus S convincingly yet to ICS I don’t think they can insist on 2-3 weeks for anyone else.
Yes thats because they want you to buyt a new one, not because they cant..its a disgrace. it took Microsoft about a week to update around the globe but a few instances, it takes Android 6 months or more even for some high end devices like GS2.
My point is using the excuse that ‘freedom’ comes with a price of this fragmentation is nonsense.
Not really. This would destroy any differentiation in the marketplace among OEMs. You’d create a situation where manufacturers are purely selling a commodity and branding becomes practically impossible. You have to leave room for customization as that’s the whole point of Android.
Some people may not like skins, but some people do. To each is own, and offering that consumer choice is Android’s USP.
Again, this isn’t a “mess” by any stretch of the imagination as the data shows. It’s just predictable patterns. New Android version comes out, OEMs & carriers customize it and launch updates. New version becomes dominant by the time the next version is due for release. This isn’t rocket science.
Branding?? software should be left well alone, this fragmentation is totally annoying.
When i read scores of android user moaning about there updates then it is a problem.
Fine customise, i dont have aproblem with skins, IF THEY ARE OPTIONAL and if they dont interfer with updates, i get the feeling that they do the slow updates on purpose to get users to buy a new phone..not needed at all.
Google should force handset makers to update the phones within 1 month, make skins optional for consumers so they can get down to ICS.
SOC makers like Nvidia and qualcomm shouldnt be fragmenting the system further with the dedicated app for processors?? WTF? that alone my put me off from buying the GS3 im undecided, i look forward to the hardware, but the fragmentation at every level of the eco system is putting me off.
Wp8 is going to cause a stir, and i suspect Google will be forcesd toimplement much of what i said…carrier power rules on android.
WP8 is going to cause a stir? I’d love to see the sales figures when that happens.
At the end of the day, the people who complain are tech geeks like us. The average guy on the street – y’know the “majority”, don’t have a clue what version they’re running. If Microsoft is banking on that, they’re in for a rude awakening.
Well it will take more than that to unseat Android yes, but it is at least one uniquething they can point to, along with UI speed, but android gets the best hardware, more app and games for the moment.
hello,support my effort to correct fragmentation and security problems here at