Monday, September 12, 2011

Android fragmentation

Android fragmentation Study need of the hour : Android fragmentation has long been a hot topic and for good reason. Google was iterating its mobile platform quickly handset makers couldn’t keep up without investing more time, money, or both; and developers showed frustration with the many versions of Android and handset configurations. That led to various versions of Android in customers hands with different features, application support and no guarantees of future upgrades. But the situation is getting better.

Steps to fix the problem About 18 months ago, we started analysing this problem of fragmentation and noted some steps Google was taking to alleviate it. Breaking out core Google applications from the Android platform has helped, because the updated software for Mail, YouTube and Maps, for example, are all available in the Android Market. Handset owners don’t have to wait for Android updates to get the latest version of these apps.

Google has also slowed down the pace of Android updates for some months now that it can. By that, I mean it had to initially mature Android quickly in order to compete at least in terms of features with Apple’s iOS. I’d say that for most people, Google has caught up to iOS in terms of the most used features. Sure there are still differences, but I’d argue that the ones that remain are fairly negligible. And where there are gaps in either mobile platform compared to the other, these can often be addressed through third-party software.

How bad is the problem now? The slower pace of updates has led to a majority of handset owners now running variations of Android 2.2 or 2.3: Google reports that of all Android devices visiting the Android Market over the two weeks prior to Sept.2, 81.9 percent run these two main versions, or a sub-version like 2.3.3. Android 1.5 and 1.6 only account for 2.8 percent of all Android devices, while there are still 13.3 percent running Android 2.1

I’m making a distinction and lumping Android 2.2, 2.3 and 2.3.3 together. Why? As a long-time daily Android user, Android 2.2 (Froyo) brought huge improvements to the platform in May of 2010. Android 2.3, and its subsequent minor point updates, haven’t added as much, or at least not much that users are complaining about.

Each version or sub-version of Android adds new APIs for developers to use, but even here, the last few Android updates have provided relatively little compared to versions from last year or earlier. Android 2.3.4, not shown yet in the data, is rolling out now to the Nexus S, but only includes bug fixes and no new APIs.

Based on this look, it’s clear the carriers have work to do: They need to nudge their handset partners to invest the effort into creating updates and then, in turn, the carriers need to test and push those updates out. However, more phones are appearing with Android 2.3 or better out of the box, which will help.

Is it as bad as it was? While the fragmentation issue looks a little dire in the above graphic, I still think it’s getting better, but perhaps that’s because I don’t make much of a distinction between Android 2.2 and any subsequent version. The situation also took two to three years to create; it’s not going to magically disappear over time. But as I look back, I do see less of an issue due to the small steps Google has been taking to address it.

An additional effort has much to do with Android tablets as well as phones. Ice Cream Sandwich, the next major version of Android, will unify the platform between both device types, which should ease future problems as Android continues to mature.

Unfortunately, fragmentation will never be completely addressed. Android will always be fragmented by definition if any handset maker can use it in any way they see fit. Various screen sizes, hardware component choices, development budgets and target price points affect Android devices and the versions of Android that they run.

The only way to eliminate the problem is for Google to either cease licensing the platform and build its own devices, like Apple, or for the Android-maker to be very specific in terms of hardware requirements, like Microsoft. I don’t expect either of those things to happen. And that’s OK, because the fragmentation issue is less of a problem than it was 18 months ago.

This approach of bundling Android 2.2, 2.3 and 2.3.3 is certainly arguable, and the first question I’d pose to any such argument is: What key functions are you missing if you’re running Android 2.2 and not a higher version? There are a few, but not too many of high impact to most consumers, in my opinion. Carriers are the other factor

Google doesn’t dictate which phones launch with which version of Android, nor does it really have any say about existing handset upgrades. These decisions generally lie with network carriers, with the lone exceptions of the Google Nexus handsets; Google pushes updates directly to these smartphones as they see fit a key reason I bought and still use a Nexus One.

In May, Google announced the Android Update Alliance to bridge the gap between Android releases and carrier updates. Key partners include Verizon, HTC, Samsung, Sprint, Sony Ericsson, LG, Motorola, AT&T and Vodafone. The group promises handset updates for up to 18 months after a phone is introduced. I think it’s bit early to assess the effort, but Justin Shapcott did just that in an insightful post at Android and Me. This chart, broken down by carrier, shows the current state of Update Alliance Members.

Android is big right now, but not sticky. It is not sticky because the apps are just baby Java apps, they are very minimalist phone-type apps, they can easily be created on any other platform or even have their functionality reproduced by Web apps. In other words, it is easy to switch a user from an Android phone where they only run a Twitter, Facebook, and Skype app to a Windows Phone where they only run a Twitter, Facebook, and Skype app. It is much harder to switch an iOS user. Where is Keynote for any other mobile? Where is iMovie or GarageBand? I have dozens of sophisticated native C music and audio apps on my iPhone that I can’t live without because that is my work. I’m stuck on iOS forever. Nobody else is trying to get me as a customer. There is nobody stuck on Android like I’m stuck on iOS.

The thing that made Windows dangerous to the Mac was that non-Jobs Apple sat still for 10 years and gave Microsoft time to clone the Mac API. It became straightforward for Adobe to port Photoshop from Mac to Windows. Nobody has even started to attempt to do that same thing to iPhone. iOS is still the only system on ARM that can run native C/C++ apps from PC’s and consoles and large computing systems. iOS is also the world’s only malware-free computing platform. At some point, some other vendor is going to finally do another instance of both of those things and they are going to become Pepsi to Apple’s Coca-Cola. Google totally blew that opportunity when they did Java instead of native C/C++; did an unmanaged platform instead of malware-free; and declined to do a centralized software updating and installation system. If they had done that, they would have 500,000 apps, now, too.

The Android ecosystem is not marching to the same beat. It is not only not doing that, they are deliberately marching to different beats.

My take, I’d certainly like to see more standardization, but I wouldn’t like to see Google go as far as Microsoft with WP7, where they’re still using hardware from a year ago, and reminds me of RIM and Nokia, who always seem to release phones at current prices, but with last year’s tech. Actually, it’s not just last year’s tech, it’s one chip period, which in the long term would seriously affect competition, and it helps commoditize WP7 phones faster.

So it’s good to keep in mind that fragmentation which by default has a negative connotation, actually has many benefits, too, like seeing cutting edge hardware as soon as it’s ready, different phone sizes, designs, prices, which are very important factors for a regular user, too. You also get to see some new stuff from manufacturers that otherwise you’d have to wait for Google to implement.

But unity and standardization is important, too, so you can have a bigger reach, and developers better know what to expect from the platform. If we take a scale from more open to closed, and it’s like this Android -> X -> desktop Windows -> WP7, I’d like to see Android move in X’s position. That would probably be the ideal and most balanced position between very open and very closed.

Fragmentation isn’t going away any time soon, but I don’t think that the resulting compatibility challenges are seriously damaging to Android. Google has found practical ways to minimize the impact of fragmentation and to keep the broader Android ecosystem marching to the same beat.

But you are wrong even if you only look at this one reason: there are many more Android devices now than a few months ago. The problem is much bigger now that Android is replacing feature phones.

We have moved past the time when devices ran different versions of Android because of incompetence and lack of planning or management on the part of Google or the handset makers, and into a time when devices run different versions of Android DELIBERATELY, in order to differentiate their device and avoid the bad reputation of Android. We’re past the time when everybody wanted the Android logo and the Google logo and the Google apps and to be all one happy platform and we’re into the time when handset makers not only don’t want the Android logo and Google apps, they don’t even want to admit that the core of their device is a version of Android. The Chinese Android handset makers see themselves as either Apple or Google, they do not see themselves as part of a larger Android platform. One of them licenses their own Android variant to other handset makers.

The root of the problem is that Google does not know how to manage a platform. Putting software on device A that is called Android and software on device B that is also called Android does not mean that those 2 devices are part of a platform. They not only both need to be the same version today, they both need to be the same future version at this time next year. If 50% of iPhones were running iOS v3 right now, App Store would not be the success that it is.

So saying Android has 70% smartphone market share is exactly equivalent to saying Linux has 70% smartphone market share, or WebKit has 99% smartphone market share. Great to know. So what we are trying to conclude? It means absolutely nothing. It is more germane to note that ARM has 100% smartphone market share, because at least ARM is a company that actually sells into a market, not an open source project that is used by lots of software engineers to build almost entirely unrelated products.

Fragmentation is both at the hardware and software level and is used to cover both. This article seems cover OS version fragmentation and doesn’t cover hardware handset fragmentation (and the associated carrier OS fragmentation due to overlaid software and applications for branding etc). It is also handset diversity but it does fragment the username for handsets as Android users are spread over so many different handsets. It’s normal to have it through updating each year but having multiple vendors exacerbates it.

I am still compiling this day by day also got help from various comments by mail to understand specific pain areas in detail, please share your concerns or any details I missed in this. You can write to me at ravindrapande@gmail.com


No comments:

Post a Comment