4 Jan 2013

Android Fragmentation: ICS Adoption Lags Gingerbread, Jelly Bean Leads

Android - Historical Version Distribution

When Google released Android 4.1 Jelly Bean, just 6 months after the major 4.0 (Ice Cream Sandwich or ICS) update, I expected a negative impact on Android fragmentation. Interestingly, Android 4.1 adoption seems to be ahead of schedule, with ICS adoption seems to be lagging, when compared to Android 2.3 (Gingerbread). Let's take a look at the reasons for these adoption patterns.

Before we begin, let's take a look at the Herfindahl Index (defined in my original Fragmentation analysis) to understand the current state of fragmentation:

Android Fragmentation - Herfindahl Index

As per the chart above, fragmentation has taken a turn for the worse after Jelly Bean's release. The H-Index is currently at its lowest level since mid-2010, when FroYo and Eclair were the dominant versions. In order to understand the cause of this dip, let's take a look at the adoption trends of the last 3 major Android versions, i.e. Gingerbread, ICS and Jelly Bean:

Android Version Adoption by Month

As we can see above, Jelly Bean adoption, at this stage, seems to be ahead of the pace of both Gingerbread and ICS. This means the root cause of the drop in the H-Index is the weak adoption seen by ICS (at just 29%, as compared with 48% for Gingerbread, after 12 months). This is likely related to the fact that ICS was the most significant update to hit the Android operating system, which made it incredibly challenging for OEMs and carriers to incorporate with their skinned version of Gingerbread. However, once customized versions of ICS were ready, it was easier to incorporate Jelly Bean, as it was a more incremental update.

Also, the chart above shows a noticeable slowdown in ICS adoption after about 9 months, while Gingerbread was unaffected. As this slowdown begun after the release of Jelly Bean, it was most likely caused by ICS devices being upgraded.

Android Version Share Gain by Month

The chart above shows that ICS adoption was partially affected by the launch of Jelly Bean, but that Gingerbread had a higher growth spike (possibly driven by higher sales growth at the time). However, the adoption of ICS & Jelly Bean has shown improvement over the last month. This should continue to improve, along with a rising H-Index, as new Jelly Bean based devices hit the market over the next 6 months.

One understated factor that could drive the upward cycle of the H-Index is Google's move to a semi-annual, major-minor release cycle, i.e. Google may stick to an annual schedule for major Android releases, followed by a minor release 6 months later (e.g.: Android 4.1 followed by Android 4.2, both christened Jelly Bean).

4 comments:

  1. Samsung still sells all lower end smartphones (sub $250) with 2.3 Gingerbread... I doubt whether Samsung will ever move lower end phones to higher versions, since the phones may not be able to support them

    ReplyDelete
  2. I don't forsee that being a major problem, HTC sells lower end devices, at the same price range, with Android 4.0+ on them. Hardware costs have typically been falling faster than the Android upgrade cycle. Samsung has just been slower moving to newer versions.

    It would be interesting to see a version breakdown among OEMs. I wouldn't be surprised to see regional players + Samsung as the laggards.

    ReplyDelete
  3. Actually in India, regional players are fast to sell phones with new version (like Micromax in India)... kind of gives them edge over the big boys... But they dont care for any upgrade post the sales... So users are basically stuck with the OS they bought

    ReplyDelete
  4. I agree. But once you look at the version share among the install base, the complete lack of upgrades would put them at the bottom of the pack. Compared to them, Samsung is slower to roll out devices with new versions (I'm assuming their product development cycle is to blame), but is ahead of regional players in terms of upgrades. That should put them in about the same bucket.

    ReplyDelete