Google implements Fragments library to combat fragmentation

One of the biggest problems facing the open-source Android world has been fragmentation. Apple’s iOS has the distinct advantage (or disadvantage, depending on how you look at it) of being one piece of software on one piece of hardware. Android developers have to deal with multiple versions of the OS on an increasingly innumerable number of handsets, and in increasingly different form factors. Fragmentation is seen by many as the ultimate cause for the eventual demise of OSs like Android, but Google has released a feature that is trying to combat the issue of fragmentation head-on.

According to Cnet, Google released a Fragment API in February that enabled better cross-compatibility with different versions of Android and different form factors. However, that API was geared towards application developed in Honeycomb (3.0). Now, Google is implementing a static library that uses the same Fragments API to allow developers on older versions of Android to create tablet-ready applications. While this doesn’t solve the fragmentation problem outright, it’s one step in the right direction.

Google’s fragmentation problems are a direct result of carriers delaying or blocking Google updates to their proprietary versions of Android. The open source OS is modified at virtually every carrier/manufacturer, so they become the gatekeepers of the update path. Google has already released Honeycomb to the masses, but only the Motorola Xoom have taken advantage of it, while Gingerbread (2.3) has only been officially shipped on the Nexus S. While everyone plays catch-up, developers are stuck between a rock and a hard place trying to develop for as many different platform as possible. According to many, this leads to lower quality applications, and will always lag behind tighter platforms like iOS. 

Report a problem with article
Previous Story

Mozilla readies Firefox 4 Release Candidate

Next Story

Take a ride in Google's self-driving car [Video]

41 Comments

Commenting is disabled on this article.

Maybe Google should develop Android 3, then work with the main mobile carriers/handset makers to ensure their software is displaying how they want.

The problem I see is too many people think it is all Google's fault, but in fact, it's the carriers and people like HTC who put their GUI over it all.
Don't get me wrong, I don't like Google and have an HTC phone

Google's fragmentation problems are a direct result of carriers delaying or blocking Google updates to their proprietary versions of Android.

This contributes to the fragmentation, but Android fragmentation is NOT a 'direct' result of carrier delays and blocking.

There are several aspects of just the version fragmentation in Android, and yes carriers are one of them.

However phone MFRs and Google's feature inconsistency are also major parts of the fragmentation issues.

Pick virtually any phone maker, like Motorola for example. They are ones making the decision to not create Android versions for their phones past the version that was released on the phone. This means that it is out of the hands of the carrier. (Google/Bing Motorola, they have dropped updates on several of their phones, and they are a rather big name in the Android world.)

Also, Google dropping features or breaking features isn't helping the carriers or the phone MFRs in getting Android updates out to users either.

The Android builds require a lot of work by the phone MFRs and then the Carriers to get an update out to the end users. This is not only just in making sure their applications run, but it is in everything from drivers, to compiling for the device, etc. It is not cheap and not easy for carriers or phone MFRs.

It is also a pain for developers which this library only 'sprinkles' with a bit of fixes.

...Stating that it is just the carriers is extremely misguided.

Wouldn't it be easier to have the OS run within another OS. With the bottom layer being the layer that carriers update for their network tweaks and junk, and then the GUI or top layer is updated automatically by Google, without the carriers being able to say anything?

Also, did Symbian have this issue?

thommcg said,
iPhone 3G won't get iOS 4.3. Where's the mention of fragmentation for Apple? Oh right, silence.

That phone went on sale close to two years ago. It's also no longer being sold. If you want to have a conversation about that, you'll probably be talking to yourself.

NeoTrunks said,

That phone went on sale close to two years ago. It's also no longer being sold. If you want to have a conversation about that, you'll probably be talking to yourself.

So?

Fragmentation isn't as big an issue as people make it out to be. You make it sound like developing for Android 2.1 is entirely different than 2.2. The only real difference is that you can't use features implemented in 2.2 in 2.1, that's it. When writing an App, you pick the API level you want to use. If you want, you can still develop apps for 1.5 and they'll work just the same on a 2.3 device. If you absolutely need a feature from 2.1, then select that API level and away you go.

The real fragmentation thing comes from the different form factors and screen sizes, some have touch screens, some don't, some screens are tiny, some are large, etc. This is no different to any other kind of mobile development in the past - Windows mobile phones had different form factors and layouts, no two Nokia phones tend to have anything in common between them and so on. Android actually does well at anticipating this, the UI layouts tend to be relative, so you don't need to worry too much about screen size if you do it right (as an example).

Apple's iOS has the distinct advantage (or disadvantage, depending on how you look at it) of being one piece of software on one piece of hardware.

I stopped reading the article right there, since that statement is clearly false.

Actually techbeck, the only people who experience issues, first-hand, with fragmentation are the Android users. The lack of apps and games, some of which you find on the iOS, is due to this fragmentation. Developer's ROI is much smaller when they have to develop for such a fragmented platform.

Google with get things straightened out. May just take a little time. I, for one, never had an issue with fragmentation. Think the only ones who do are non android users or android users who know a lot about the phone, what it can do, but dont want to root.

Actually, iOS developers still needs to support at about six models of hardware at least. The fragmentation problem was not about the how much different the hardware is, or how many versions of the operating system are living simultaneously, it's about the inconsistency between the same version of the operating system between different manufacturers and/or carriers.

I am currently working on a mobile web site, and I was shocked by how differently the browsers on these mobile devices react to the same piece of code. Every phone I tested with has a different user interface. And when I thought it wasn't much of a deal because the browsers that came with the same version of the same operating system would behave the same across different hardware, I found out I was wrong, they have different buttons, different menus and the functions with same name are actually not the same thing.

To make things worse, these carriers even customized the system so that the built-in browser are not the default browser used to open web pages, but some much less consistent third-party browsers instead. When my users asked me why my web site looks so bad on their phones, I had to tell them they were using a non-standard, carrier-customized browser, and they need to switch to another browser that should be made default but instead was not, they all became confused.

tonyunreal said,
Actually, iOS developers still needs to support at about six models of hardware at least. The fragmentation problem was not about the how much different the hardware is, or how many versions of the operating system are living simultaneously, it's about the inconsistency between the same version of the operating system between different manufacturers and/or carriers.

I am currently working on a mobile web site, and I was shocked by how differently the browsers on these mobile devices react to the same piece of code. Every phone I tested with has a different user interface. And when I thought it wasn't much of a deal because the browsers that came with the same version of the same operating system would behave the same across different hardware, I found out I was wrong, they have different buttons, different menus and the functions with same name are actually not the same thing.

To make things worse, these carriers even customized the system so that the built-in browser are not the default browser used to open web pages, but some much less consistent third-party browsers instead. When my users asked me why my web site looks so bad on their phones, I had to tell them they were using a non-standard, carrier-customized browser, and they need to switch to another browser that should be made default but instead was not, they all became confused.

Now you did it, fragmentation does not exist at all in iOS since all users are always on the latest version of the software and currently supported hardware, and you will be flamed for ever insinuating anything else

bluefisch200 said,
Of course nobody is using 3.0 since it is a tablet-OS and not for phones

Android 3.0 isn't a tablet-only OS.

Jan said,

Android 3.0 isn't a tablet-only OS.

As of right now it is. Google released it as such and due to limits in its dpi settings it is clearly for tablets only. Yes, elements of it will be incorporated into Ice cream but 3.0 simply isn't build for the smaller form factor.

Jan said,

Android 3.0 isn't a tablet-only OS.

Yes it is. Android 3.0 is Honeycomb. Google has repeatedly said that Honeycomb is just for tablets and gingerbread is for phones. Ice Cream (android 3.1? Android 3.5? 4.0? Whatever) will once again merge the two to become a unified OS.

Kushan said,

Yes it is. Android 3.0 is Honeycomb. Google has repeatedly said that Honeycomb is just for tablets and gingerbread is for phones. Ice Cream (android 3.1? Android 3.5? 4.0? Whatever) will once again merge the two to become a unified OS.

And it was this exact type of crap with *nixes and even Novell in the late 80s that Microsoft saw all the versions and server/desktop differences creating a mess, and the NT team made a single code set as a requirement for NT, so that client and server versions would always be the same product. (XP and 2003 Server was the only time this varied.)

It was this consistency that helped Microsoft progess in the business and technical markets with Windows NT, and it was a rush for them to replace the consumer line with Windows NT, waiting on hardware costs and performance to catch up.

And now we have Google intentionally fragmenting their own OS on top of its inherent fragmentation that is occuring in the distribution channels. I understand why, as Google did not iron out Android's OS model to extend easily or seamlessly, and thus a 'tablet' version is needed. However, it is sad and a good argument to Google that they should have taken time to model Android better or maybe should have actually designed their own OS model instead of just grabbing the cheapest OSS rights they could buy for the VM and other technologies and slapping it on a free kernel.

Sad, just sad.

jakem1 said,
But all the Android fanboys told me that fragmentation was a myth

Nobody says that, but fragmentation has no impact on Android sale numbers...

bluefisch200 said,

Nobody says that, but fragmentation has no impact on Android sale numbers...

Google seems to think it does since everything it does is to make money. If fragmentation had no impact on sales number, Google wouldn't waste resources on a Fragments Library.

jakem1 said,

Plenty of people say it, including some prominent members of Neowin.


You need to learn to filter some geek BS from facts.

jakem1 said,

Plenty of people say it, including some prominent members of Neowin.

I don't think they mean that there is zero fragmentation as there will always be fragmentation of some sort when more than one version of an OS is released. However they probably mean that it's not as big an issue as many make out. The majority of the Android ecosystem is now 2.2, meaning flash support. Including 2.1 accommodates for 90% of Android phones. While not perfect it's clearly far from chaos.

Also, just because 2.3 is released this does not mean that 2.2 or even 2.1 are dramatically inferior. Sure, some big features will accompany OS releases (Such as flash) but users on these lower versions still have a perfectly functioning and feature full OS. You aren't left with a brick if you don't have the newest version.

bluefisch200 said,

Nobody says that, but fragmentation has no impact on Android sale numbers...

Of course it doesn't, your average Joe has no idea what fragmentation means, why would it affect sales? It's only going to become apparent when avg joe has had their phone for say 6 months and his mate gets a new phone with some swanky cool app and it turns out that joe can't get it because his phone is out of date!

It will however have a direct affect on App sales!

jakem1 said,
But all the Android fanboys told me that fragmentation was a myth

Damn Trolls...but to amuse you, I never said it didnt exist. I said it wasnt as big of a deal as people think it is and the only ones who really complain about it is non Android users who just want something to bitch at Android.

jakem1 said,
But all the Android fanboys told me that fragmentation was a myth

It's not a myth, it just doesn't matter as much as the sensationalists want to make it sound. We have had computers with different OSes and performances for a long time haven't we? Are all PCs doomed because of it? No.

I do think that something needs to be done though, like a performance index for... maybe CPU, GPU, and RAM. Then developers can rate what their apps require from the phone, and if you have a phone that's slower and you buy the app, it's on you whether it works or not. Something kind of similar to the performance index in Windows, but hopefully actually useful.

It isn't going to be the death of the platform or anything, but there are a few things that could be done to help it out.

Hollow.Droid said,
I don't think they mean that there is zero fragmentation as there will always be fragmentation of some sort when more than one version of an OS is released. However they probably mean that it's not as big an issue as many make out. The majority of the Android ecosystem is now 2.2, meaning flash support. Including 2.1 accommodates for 90% of Android phones. While not perfect it's clearly far from chaos.

Also, just because 2.3 is released this does not mean that 2.2 or even 2.1 are dramatically inferior. Sure, some big features will accompany OS releases (Such as flash) but users on these lower versions still have a perfectly functioning and feature full OS. You aren't left with a brick if you don't have the newest version.

The majority of Android users are running on 2.x. According the chart on Wikipedia ( http://en.wikipedia.org/wiki/Android_2.3#Usage_share ), it it just shy of 90% are running 2.x (89.8% are running 2.0, 2.1, 2.2, and 2.3). Things get much less impressive when you look at the breakdown from there.

First of all, missing 10% of your customer base running 2.x is a joke. Even Apple, which I can't imagine anyone will defend on this, only just dropped support for the original iPhone with iOS 4.

Now, breaking it down:

0.8%: Users running Android 2.3
57.6%: Users running Android 2.2
31.4%: Users running both Android 2.0 and 2.1

Android 2.0/2.1 introduced HTML5 support and Exchange email support.
Android 2.2 increased performance dramatically both in apps (through Just In Time compilation improvements, up to 5x increase was reported ( http://www.engadget.com/2010/0...lash-10-1-wifi-hotspots-an/ ) in multiple places) and in the browser (similarly dramatic Chrome JavaScript improvements)
Android 2.3 improved the UI, and improved copy/paste (which is amusing, since everyone mocks WP7 for just now getting around to that, and most Android users don't even have the tweaks)

So, most Android users can run HTML5 apps. That's pretty cool. Less than two thirds have the performance increases, which undeniably causes fragmentation when talking about numbers of that magnitude. Not even 1% has the improved copy and paste support.

As a developer, that is not a pretty picture, but in many cases not insurmountable (see simple applications like TweetDeck). As a user, it is a disturbing picture. Unless you are willing to root your phone, then you are absolutely hosed and had better not expect future releases, and thus must ignore rumors and information about future Android OS updates.

There is fragmentation. There is a reason your phone is not most likely running Android 2.3--which has been out for almost as long as WP7 at this point. The reason probably lies somewhere between Google and your carrier, including your manufacturer, but it's there. Maybe it does not bother you, which is perfectly and seriously fine, but to suggest it is not there is a downright lie. If I owned an Android phone, I'd have rooted it as well, but I would also be willing to admit the reality: it has fragmentation and most users are not rooting their phones.

Edited by pickypg, Mar 4 2011, 5:39pm :

techbeck said,

Damn Trolls...but to amuse you, I never said it didnt exist. I said it wasnt as big of a deal as people think it is and the only ones who really complain about it is non Android users who just want something to bitch at Android.

I'm sure android users stuck on 1.5-2.0 will disagree. You can blame the manufacturers or blame google, but it all leads to the same fragmentation issue. I know I would be annoyed if I was still on 2.0

pickypg said,
The majority of Android users are running....

Firstly, I did not state there was no fragmentation, neither did I state that there isn't a problem. I have a Nexus one running 2.3 and I chose this phone as I knew it would be among the first to receive future updates. I also knew that had I chose another handset I would suffer from delayed updates. There is fragmentation but for the general consumer it's becoming less and less of a problem.

Assuming the general consumer doesn't care/know what version they are running, they simply want their apps working. Short of Flash I doubt there is a large percentage of apps unavailable to those running 2.1. Phones running 1.6 while being 10% of the user base are outdated handsets. Those apps/games/features which are not compatible can be largely put down to the lack of power, screen resolution or hardware limitations. What Google or anyone can do to reduce this percentage on their own is beyond me, some people just want a phone and the advertised speed improvements, processing power, apps or games simply don't appeal to them.

Additionally you applaud Apple for their updates but neglect to compare the differences in their ecosystems. With the huge number of Android handsets, manufacturers and carriers have to reach a trade off between dedicating time to previous handsets and focusing on new ones. If all Android handsets were given 3 or 4 version updates then the speed of these updates would undoubtedly suffer for everyone. It's a lose lose situation and one which manufacturers are realising is becoming increasingly important.

As for copy/paste improvements they are just that, improvements to an already acceptable feature. I didn't have problems with the previous copy/paste system for the little I used it and I see no reason to compare it to an OS which doesn't have it. You also seem to be under the illusion that all Android users are tech enthusiasts who know or care about performance improvements or exchange support. Those who really care enough to 'Need' these improvements should either have an updated handset or can root their phone. None of these improvements are general consumer issues.

Again, I know there is fragmentation and I know it causes headaches for developers but Google seems to be making efforts both on the consumer front (Making sure the majority of apps running on version X-5 still run on X-2 for example) and a dev front (With improvements described in the article). With Androids ecosystem devs can see that there is a trade off between reaching such a large user base and the development of their apps.

Hollow.Droid said,

I don't think they mean that there is zero fragmentation as there will always be fragmentation of some sort when more than one version of an OS is released. However they probably mean that it's not as big an issue as many make out. The majority of the Android ecosystem is now 2.2, meaning flash support. Including 2.1 accommodates for 90% of Android phones. While not perfect it's clearly far from chaos.

Also, just because 2.3 is released this does not mean that 2.2 or even 2.1 are dramatically inferior. Sure, some big features will accompany OS releases (Such as flash) but users on these lower versions still have a perfectly functioning and feature full OS. You aren't left with a brick if you don't have the newest version.

Just last month, the numbers had 15% of the Android users still running 1.5 or 1.6. There is a bigger gap than I think you realize. (Go to Cricket, their main Android phone is still being sold with v1.6 - after 9 months of promises that it would be updated to 2.2 that probably will never happen.)

There are also big differences in these versions...

v1.5 isn't even supported by the majority of developers, and there are a lot of Motorola device owners stuck at 1.5.

Between v1.6 and v2.1 there is a massive difference in 3D support and features, where many of the Google Apps don't even run on v1.6, like Google Earth.

Even the jump from v2.1 to v2.2 is big for developers with multi touch features and application speed with the JIT update.

Now we are at v2.3 with new GPU features and a lot of fixes to problems, and I would bet good money that 75% of the Android phones will never see v2.3 EVER.

This is because it cost the phone MFRs a ton of money to build for their device, and the carrier to rebuild with their changes added in with their custom applications.

Why would a phone MFR even care, they would rather sell a new phone, and if they can get people to follow the carrot for a couple of more years until a better non-fragmented ecosystem emerges, they will.

The problem for Google is WP7 is the ecosystem that could kill Android. As it potentially supports all devices, and has no ongoing fees for MFRs or Carriers, as Microsoft handles the updates, just like Apple does. (This is how Windows won the OS wars in the first place, Microsoft took over the responsibility of the OS from the OEM/MFRs and the cost of maintaining the OS and provided a consistent and non-fragmented progressing API set to developers.)

So if you think this couldn't happen, go back to 1990 when IBM and Wordperfect and Novell also thought it would be impossible for Windows to ever touch any of them - and it decimated them.

Google needs to be figuring this out and you and other Android supporters need to do what you can to ensure Google figures this out. People are already fighting about having v1.6 and not being able to use Google Earth, and their friends Android runs it just fine. So wait for the end user aspect of this fragmentation issue to become a buzz, and Android will be done and relegated to the technical and geek community, just like most *nixes and OS/2 did in the early 90s.

I thought the Nexus S ran Gingerbread (2.3) since Honeycomb is only aimed at tablet's ?

Either way my N1 just got the gingerbread OTA this morning so I'm still happy.

I'm hoping eventually carriers/manufactures will just give up loading on there custom crap on to android anyway, since all their really doing is spending a ton of time and money making the O/S slower and less useable. Then having to faff around updating it all to every new android version. Going with stock on the other hand = faster updates, cleaner o/s and less headaches for the carriers/manufactures. A few custom apps is all they really need IMO o.o .

Yeah some parts of this article didn't make any sense. Honeycomb is for tablets, the Nexus S hasn't even received a dev port of Honeycomb never mind an official Google release, it would make no sense.

Also, I'd like to see some sources for this:

developers are stuck between a rock and a hard place trying to develop for as many different platform as possible. According to many, this leads to lower quality applications, and will always lag behind tighter platforms like iOS

Saying something this sweeping deserves at least one reputable source or statistic. Didn't Tweetdeck state that they had 2 people working on their Android version and that in their words shows how small an issue fragmentation is. More facts and less bias in articles would be greatly appreciated.

Hollow.Droid said,
Saying something this sweeping deserves at least one reputable source or statistic. Didn't Tweetdeck state that they had 2 people working on their Android version and that in their words shows how small an issue fragmentation is. More facts and less bias in articles would be greatly appreciated.
Look at what Angry Birds has said, and shown.

Developing any TweetDeck-like application is a joke, and using it to suggest a lack of fragmentation is pathetic. They plug into existing APIs, which do all of the heavy lifting for the developers.

The only part of development that probably took any time was the UI, and if you've actually looked at TweetDeck's UI, then it should be pretty obvious that it is extremely basic. To be completely fair, that is actually very good for its purpose, but to turn around and describe it as a basis for stating no fragmentation is absurd. They do nothing special. They do nothing advanced. It would probably take them a few days to port to any other mobile device.

That is why a billion different TweetDeck-like clients exist.

pickypg said,
Look at what Angry Birds has said, and shown.

Developing any TweetDeck-like application is a joke, and using it to suggest a lack of fragmentation is pathetic. They plug into existing APIs, which do all of the heavy lifting for the developers.

My comment wasn't meant to show once and for all how fragmentation is a non issue but rather to show the point of one developer. There is fragmentation but for Angry Birds it was largely a problem of some older and lower performance Android devices...experiencing severe performance issues. Citing Angry Birds as a sole source of fragmentation issues is pathetic, the older and less powerful phones simply couldn't keep up with the graphical requirements which the majority of Android handsets can run.

Regarding processing power, if we stuck strictly to apps/games which all handsets can run then there would be very little room for improvement. My Nexus One has no chance of running TegraZone games and over the coming months/years I'm sure it will struggle more with newer, more intensive apps/games. However I know I will get at least 2 years out of this handset with ease and this is coming from a tech enthusiast perspective, not that of a general consumer who would care even less.

I'm sure that for devs it's a pita to develop for a number of handsets/resolutions/hardware but to get access to a large user base will obviously come with its draw backs. Tools like those mentioned in the article are there to reduce the effects of fragmentation on both consumers and developers, not to eliminate fragmentation which will undoubtedly occur in some shape or form in the Android ecosystem.

Rudy said,
Here comes the band-aid

well something is better than not doing anything about it.... its just the begining...