What’s really going on with Android “fragmentation”

This is a follow-up to a post I did last year, “Does Android “fragmentation” actually affect end users?”

Unfortunately, tech news sites keep referring to this Android “fragmentation” problem in the same tired old ways. Here are some recent takes on it:
Has Google Done Enough to Keep Android Phones Up-to-date?
Google: Android fragmentation ‘up to manufacturers’
The Android era: From G1 to Jelly Bean
Android 4.1 Jelly Bean: Can it Solve Android’s Fragmentation Problem?
Newest Android Operating System Insufficient for Developers, Fragmentation Top Priority
Google Copies Microsoft, Not Apple, To Fix Android Fragmentation
Fragmentation, OS upgrades: Do people even care?

First of all, as I mentioned in my earlier entry, the Android “fragmentation” problem almost all tech journalists refer to basically doesn’t exist or is a non-issue. The vast majority of Android users are running either 2.2 or 2.3, and there’s not that huge a difference between the two versions (yes, I’ve used both on more than one phone). If you are a developer making an app, code it for 2.2+, and you’re targeting almost all Android users. Again, as I said before, I’ve used Android 1.5, 1.6, 2.1, 2.2, 2.3, and 4.0 (just flashed 4.1 on my Galaxy Nexus this week, too). Every single app I use has worked on every version I’ve had. When I get a new version of Android, I restore all my app backups using Titanium Backup, and they all work. Same deal if I install them from Google Play (Titanium Backup is just faster and adds in user data).

I did discover this year, though, what real Android fragmentation looks like. It isn’t running different version numbers. It’s running different skins and apps.

A friend of mine has a Droid X, and she wanted to know how to make Google Voice the default texting app. Basically, couldn’t be done. Had nothing to do with the fact that she was running Android 2.3. When I ran Android 2.3, I had no problems making Google Voice the default texting app. I was running a relatively vanilla (CyanogenMod) 2.3, so when you tap to text someone, it prompts you which program to use. On the Droid X, the built-in messenger app automatically loads up, even if you set Google Voice as the default texting app. Thanks, Motorola for your wonderful Motoblur interface. It stinks.

Then I had a co-worker who wanted to add her work Exchange email account to her phone. She had an Android phone, so she thought I could help, as I also had an Android phone. I also had initially thought my being an Android user would help in this situation. Nope. She had some random LG phone with its own skin and default apps. The email client offered POP3 and IMAP, but Exchange was simply not an option. Again, this has nothing to do with the Android version number. After all, she also was running Android 2.3. In the regular Android 2.3, the Email app can do Exchange. So I had to do some browsing around Google Play and test-drive a few free apps to finally find one that did Exchange.

Those examples are what real fragmentation is, not people using Android 2.2 v. Android 2.3.

Many people don’t know where to put the blame. Is it Google’s fault? Is it the handset manufacturers’ faults? Is it the wireless companies’ faults? Well, I don’t really care whose fault it is, but I know two simple steps Google can take to fix the problem (yes, the real problem, not the one the tech journalists claim to be the problem):

  1. Change the way skins work. Handset makers want ways to differentiate their Android phones from each other. So they take a regular Android operating system from Google, and then they customize it or “skin” it with some overlain interface. For Motorola, that’s Motoblur. For Samsung, it’s TouchWiz. For HTC, it’s Sense. That’s fine. I don’t mind them customizing the interface. The only problem is that then the customer cannot uncustomize the interface without rooting, and it’s a very small percentage (probably in the single digits) of Android users who will actually root their phones to install custom roms. So instead of just saying “Here! Bake in whatever you like so it can’t be undone,” Google should make it so Android can be skinned through a theming engine, and the handset makers can then make theirs the default theme, but then users who are interested can go back to the vanilla Google theme or download other themes from Google Play.
  2. Make all stock apps available through Google Play. I shouldn’t have to go hunting down an alternative to Email that includes Exchange support. That should just be in Google Play, ready to install. So handset manufacturers or wireless providers can put on whatever stock apps they think people will need, and then customers who don’t like those apps can then install the stock Google apps instead.

Google has taken a few steps in the right direction, and when more Android users are on Ice Cream Sandwich (4.0) or Jelly Bean (4.1), then they’ll appreciate these steps more. In Ice Cream Sandwich, you can disable preinstalled apps. And in Jelly Bean, you can disable notifications from certain apps, even if you keep them enabled.

I’m a big open source fan, but sometimes Google just has to take some control back. Give carriers and handset makers the right to customize, but then give users more of a right to uncustomize. Then you’ll get less of the real fragmentation problem.


Does Android “fragmentation” actually affect end users?

Ever since 2009, I’ve been hearing a lot in tech blog posts and the media about “Android fragmentation.” No actual Android user I know in real life has complained about it, though. I’ve also noticed that criticisms about so-called Android fragmentation tend to be quite vague.

From Android fragmentation is real:

For Joe Average, this created an ultra-confusing marketplace where operating system versions changed every few months. It also meant that compatibility issues were inevitable.

What compatibility issues? Examples?

From Ask Maggie: On waiting for a Verizon iPhone 5:

But one of the problems that Android has is that it’s very fragmented. Even at the smartphone level, different devices run different versions of the Android OS and that means that not every app runs every device.

What apps? Examples?

On my MyTouch 3G (the original), I’ve used just about every version of Android there is. 1.5, 1.6, 2.0, 2.1, 2.2. Some rooted. Some OTA from T-Mobile. I’ve experienced no problems as an end user in terms of applications having compatibility issues. Some of the more graphics-intensive apps don’t run well on my 528 MHz processor with 192 MB of RAM, but that’s regardless of what version of Android I have—my phone just isn’t that powerful, so Angry Birds will just not run well on it. That has nothing to do with “fragmentation.”

Some people who want to make a big deal about Android fragmentation will point to an interview with one of the Angry Birds makers (Peter Veterbacka) in which he says

Android is growing, but it’s also growing complexity at the same time. Device fragmentation not the issue, but rather the fragmentation of the ecosystem. So many different shops, so many different models. The carriers messing with the experience again. Open but not really open, a very Google centric ecosystem.

but they seem to ignore that when asked directly about Android fragmentation being an issue, he says

Fragmentation on the device side is not a huge problem, but Steve is absolutely right when he says that there are more challenges for developers when working with Android. But that’s fine, developers will figure out how to work any given ecosystem and as long as it doesn’t cause physical pain, it’s ok;-) Nobody else will be able to build what Apple has built, there just isn’t that kind of market power out there.

That doesn’t mean that model is superior, it’s just important to understand that Apple is Apple and Google is Google. Different. And developers need to understand that. Different business models for different ecosystems. And wouldn’t forget about Nokia and MeeGo either, new leadership always tends to shake things up and create opportunity. And HP-Palm. And RIM. And even Microsoft. It’s a fragmented world.

If you actually own and use an Android device as your primary phone, how (with specific examples) have you found so-called “fragmentation” affecting you? Which applications do not work on your version of Android that would work on another version? Why do you think people don’t make as big a deal about “Windows fragmentation” (Windows 98, 2000, XP, Vista, 7) or “Mac fragmentation” (Panther, Tiger, Leopard, Snow Leopard)? Am I crazy for thinking Android fragmentation is a non-issue?