Why Fragmentation in Android is Here to Stay

May 20, 2014

The value chain of Android is the root of its fragmentation problem.

If there's anything that causes headaches about Android it is fragmentation. With over a billion devices out there, it can be daunting - especially if you compare it to the uniformity of iOS devices. Here's the latest stats from the Android developers site:

Notice how Android KitKat, the latest version of Android on the market has only 8.5% distribution? It has been our for over 6 months.

While Google is trying to address is in various ways (both technical and governance ones), I don't forsee any changes in the short to mid term length here. Instead of explaining what that is in my own words, I'll use a great explanation made by Bruce Schneier about security and the internet of things. While a totally different topic, the reasoning is the same:

To understand the problem, you need to understand the embedded systems market.

Typically, these systems are powered by specialized computer chips made by companies such as Broadcom, Qualcomm, and Marvell. These chips are cheap, and the profit margins slim. Aside from price, the way the manufacturers differentiate themselves from each other is by features and bandwidth. They typically put a version of the Linux operating system onto the chips, as well as a bunch of other open-source and proprietary components and drivers. They do as little engineering as possible before shipping, and there's little incentive to update their "board support package" until absolutely necessary.

The system manufacturers—usually original device manufacturers (ODMs) who often don't get their brand name on the finished product—choose a chip based on price and features, and then build a router, server, or whatever. They don't do a lot of engineering, either. The brand-name company on the box may add a user interface and maybe some new features, make sure everything works, and they're done, too.

The problem with this process is that no one entity has any incentive, expertise, or even ability to patch the software once it's shipped. The chip manufacturer is busy shipping the next version of the chip, and the ODM is busy upgrading its product to work with this next chip. Maintaining the older chips and products just isn't a priority.

Translated to smartphones and tablets, you get this rational. An Android smartphone has this simplified value chain:

Each one of the players in the value chain above has a responsibility to the Android operating system.

  • Chipset vendor - the chipset vendor is going to be Qualcomm, Samsung, NVIDIA, Marvell or some other vendor. As they are the lowest in the food chain, they are the ones expected to get Android to work on their chip. It can be as simple as porting it and leaving it be, to doing special optimizations to make sure Android runs best on their chipset. They also don't work in vacuum: chip design today comes from multiple vendors - some providing different accelerators to the chip and that brings with it its own set of software code that needs to be integrated at the low level.
  • ODM - the one designing and building the handset. This can be known brand names that actually do development or it can be the likes of Pegatron and Quanta. They take the chip, put it on a board, connect it to the relevant peripherals (cameras, microphones, display, memory, etc). They also need to obtain, write and/or modify the relevant drivers that communicate with these peripherals.
  • Brand name - these are the phones we know. The problem here is that they like sticking their own UI and "experience" on top of the vinyl Android to differentiate it from the rest of the pack
  • Google Android - the base OS, which gets thinner every version, whereas the Google Play Services (one of Google's governance mechanisms) gets more valuable. They provide the code and binaries to all players in the value chain.

When Google releases a new version, the chipset vendor needs to adopt it, the ODM needs to adopt it and the brand name needs to adopt it. Any peripheral involved may need some driver tweaking. And this needs to be done by the vendors that have already got all of their revenue from the effort. Any additional effort they put on the device is wasted money - they won't see any new revenue from it. What they sell is devices, and these devices than need upgrades have already been sold (and have a lifespan of 2 years, at least in industry perception).

Why is this important?

  • If you are a developer, don't expect things to change for the better here
  • Support of a new feature in Android (WebRTC inside Webview anyone?) will work only for newer smartphones launched to market
  • Our devices and the value chains around them aren't equipped for the modern internet. They need to be serviceable for longer periods of time

You may also like