Apr 30 AT 10:51 AM Russell Holly 46 Comments

On the verge of real Android fragmentation

Of the many things that get said about Android in an derogatory tone, my least favorite is that of “fragmentation”. The biggest reason for my distaste of the subject is typically the extra junk that gets lumped in, causing even the most rational of conversations to tailspin into a fanboy fight. It’s a subject that is neither clearly defined, nor is there a platform right now that does not also suffer from fragmentation to some extent. The truth of the matter is that Android takes more heat regarding fragmentation due to the volume of handsets that are running the OS. So, my distaste of the subject typically leaves me unwilling to even talk about it, until now. Unfortunately, I see Android on the verge, and in some way already beyond the point, of having actual fragmentation issues.

I was quick to ignore it, but the signs are all around us. The first, and likely the most significant in the not-so-distant future, is app development. When NVIDIA dropped the Tegra 2 Processors, Android saw the advent of the Tegra Zone and Android Market apps with “THD” (Tegra High Definition) on the end. NVIDIA isn’t the only one playing this particular game, either. At this year’s Game Developer Conference, Qualcomm could be seen wooing game developers with the promise of a dual-core chipset with native 3D audio support to create a truly immersive mobile gaming experience. At Appnation this past week, Qualcomm made their Developers Kit, which includes a dev phone made entirely by Qualcomm, for sale to developers. There are already several really impressive looking games on their way to Android, but they will be specifically optimized for the Qualcomm chipset.

Let’s not forget the increasing chasm that exists between Android 2.3 and Android 3.0. This week alone I have installed 3 different apps that either could not run on 3.0, or displayed an error upon install that informed me my device was not supported. Backbreaker HD, which ran amazingly on my phone, isn’t optimized for Tegra 2, and as a result is not even playable. Earlier today, as excited as I was to finally see HBO Go for Android, I was unable to use the service on my Xoom, because my device wasn’t supported. Soon, we’ll see Netflix for Android, but it will only run on Qualcomm’s new Snapdragon hardware. The list goes on and on, and the end result is that one day EVERYONE will own a phone that can’t do SOMETHING in the Android world.

Every answer I can think of when it comes to a solution to this problem is the wrong one. Google can’t get involved in policing apps for functionality, lest we lose the “open” Market we’ve come to love so much. The hardware manufacturers will continue to give you a reason to buy one of THEIR phones, and just wait until the carriers get involved so that the random awesome game you want is only available on AT&T. Don’t get me wrong, some parts of this are going to be just amazingly awesome. The rich graphics, the amazing sound, the more powerful handsets are all going to rock, but what exactly is the cost of that much awesome?

I write things.

    Most Tweeted This Week

  • http://Website Westindiesking

    Google needs to require a set of drivers that must be used to allow all video and sound to be compatible. Something similar to direct X. Windows has a similar issue but is resolved and truly when developers start to see profits drop and see they have to design specific drivers for all these different hardware they will need to unity and apply pressure to Google and Manufactures to provide a solution.

    • http://Website Daniel

      Developers don’t ever communicate directly with the hardware drivers, these hardware compatibility problems are due to either bugs on the existing drivers or developers actively blocking unsupported hardware (often in partnership with a specific GPU manufacturer, which is arguably in bad faith — an app being unable to run because it’s “not optimized for Tegra 2″ is bullshit, they most likely want you to buy the tablet version at a higher price in the future).

      Both issues do exist in the Windows world, but the latter is much less common (and more actively frowned upon by users) and the former is largely mitigated by having updatable drivers. They tend to sort out over time, as both users and drivers mature. Users won’t settle for this exclusive treatment and drivers will have less bugs due to better test suites.

      • http://Website Westindiesking

        thats when as Users have to support the more friendly Developers and Manufactures. I am sure Google is aware of this issue and it will be mention in this years I/O convention. We also need the media to ask these tough questions as well, to show Developers, Manufactures and Google that this is a serious issue that will hurt their bottomline.

  • http://Website LGG

    I believe android ice cream will fix the gap between 2.3 and 3.0, but otherwise you are spot on. The truth is that the issue exist today to some extent which is a part of the reason why gameloft doesn’t use android market, but the situation will only get worse in future…

    • http://Website Mark

      Ice Cream won’t do JACK to solve the fragmentation issues. Matter of fact, it will only make it worse. If it is released, we start another uphill battle and constant questioning to when our phones will get updated IF they get updated. Here is the truth, Google simply needs to step in and set benchmarks for these manufacturers using their OS. That way everyone is on the same page and phones have a higher chance of getting updated.

      At this rate of processor exclusive games, we will soon have BATTERY EXCLUSIVE GAMES!

      • http://Website Jay

        I agree with you on the worsening of fragmentation. I have a fair chance of seeing gingerbread on my atrix but don’t have any hopes or expectations of seeing ice cream. The main answer to ice creams fragmentation will be” buy a phone with ice cream” which is no better than how it is now unless you want to go the cwf route. I personally am fine with froyo as ginger offers little for me but I know most that frequent this site want the latest and greatest (nothing wrong with that) os and hardware.

  • iDavey

    I agree wholeheartedly. I was just thinking this.
    For example…the Google Talk Video…nice to have it. But when you have noone to chat with, it’s kind of pointless. Google has the footprint to draw in a IM userbase out this world, but for some reason…they’re not really pushing it.

    Then the Netflix exclusivity. Skype. So on and so forth…this is ridiculous.

    This has to stop. I mean, I know as a Nexus user, I’ll always have the latest abilities…but if nobody else is out there to use it and spread the word about it, will it matter?

    I’d love to have Samsung’s Exynos SoC and use Netflix.

  • Jeffroid

    out-of-topic: what is iPhone’s ad doing on this page? eew…

  • http://Website Mike

    One of the most needed thing is for google to improve the android market, so then developers can better pick and choose which phones can and can’t download their apps.

    Currently, developers can block phones with certain features, but they can’t choose exactly which phones, causing their apps to get low ratings from users using unsupported devices.

    • http://Website Daniel

      Whitelisting (or blacklisting) devices will only lead to a horrible experience. For example, if it were implanted, a lot of American apps would block the HTC Desire, one of the most popular phones in the world, but which only exists on a single minor carrier in the US. Furthermore, it’s hard to define what is a device model. Are the four Galaxy S variants in the US the same phone? What about the other minor variants across the world? There’s no practical difference between the i9000 and the i9000T, but it gets its own model ID.

      The last thing we need is device selection. We need improved hardware capabilities probing, while remaining vendor-neutral.

  • http://Website Brian

    Hopefully, ROM devs can create ROMs that have all signatures needed to get those “custom” apps.

  • http://alostpacket.com/ alostpacket

    This is something I expect things like Unity, Corona, Unreal, and even Google themselves to solve. Sure there will be some bumpy roads in the near future as companies jocky for position and market share — but in the end someone will write engines optimized for multiple chips. There will be a market for that extra layer of abstraction without going all the way to the Java level of the stack. And even now the Java layer is getting much better — there are more tools for OpenGL ES and audio effects in Gingerbread than anything we’ve seen before.

    But it’s certainly true that developers can’t juggle so many different low level codebases and stay in business. Similarly chip makers can’t stay in business unless developers use their features.

    Windows has had this problem for years with ATI and Nvidia, but there was common ground with DirectX and OpenGL. It also happens with the consoles. But when things settled, most of the good and/or popular games either wrote, or purchased a cross platform engine. I don’t see why this would turn out any differently.

  • http://Website Mark

    At this rate, we will soon have games exclusive to what type of SCREEN you have. Don’t have an OLED screen? Too bad….can’t play our game.

  • http://Website The_Omega_Man

    This is part of the awkward adolescent period for Android in general. Obviously it still has some growing to do before it matures into the beauty that it can be.

    • keridel

      I agree. All of us old enough to remember the advent of graphics cards remember the same issue.

      Time will make it all come good.

      • Noice

        The big question is what can we learn from that (and other) bleeding-edge tech coming-of-age stories?

        How can we motivate the manufacturers, vendors (carriers) and developers to genuinely give a damn about interoperability and not deviating from a community acceptable level of ‘service’ simply to get a one month feature advantage, to create their own splinter of exclusivity.

        Right now, all monetary incentive is to splinter it.

  • http://Website NamelessTed

    I think a lot of this will sort itself out eventually. I know that isn’t the best way to approach the situation but that is how I see it. Like somebody suggested above, Google should release their own version of something like Direct X.

    Back when video cards were a brand new thing we saw this exact same thing happen. We had two or three different video cards and developers were making games that had to use a specific video card in order to run. We had major fragmentation at that point. It wasn’t that developers didn’t want certain people to play their game it was just that they had to put all their energy into making a great looking game and didn’t have the man power to code for three completely different chips.

    Now we have Direct X or Open GL. In the PC world a game made using Direct X will pretty much have universal support unless the a PC just doesn’t meet the minimum requirements. We have to major chipset manufacturers and both nVidia and ATI do an excellent job at keeping their drivers up to date on all of their chipsets to ensure the highest compatibility.

    It might take a big name publisher like EA or even Sony to come in and get everybody working together. Developers and publishers don’t want to spend the time and money making sure their games can work across all hardware. They obviously want the largest market penetration as possible but there is a limit when there are 200 different handsets on the market.

  • http://www.droidweb.com Droidweb

    Wasn’t this supposed to be the job of the Open Handset Alliance? Namely, to make sure that the manufacturers, hardware suppliers, software developers, and carriers were all on the same page?

    Why not create a set of standards for the OHA, creating a series of phones that have “OHA approval” instead of “w/ Google” stamped on them. These phones would understandably be more expensive, but would guarantee to run everything, and this is what good Android developers would build against.

    Then you’d have cheaper, handset manufacturer driven, handsets with all the glitches. However this would be fine because then the hacker community could come in and make ROMs and patches that would then allow these devices to run all software built for “OHA Approved” devices.

  • http://www.droidgamers.com ExtremeT

    I’ve been looking at this for some time now and I’ve come up with a bit of a different point of view on the matter, at least in the gaming aspect of things. It is time to start thinking of Android as “mobile PC gaming” whereas other mobile operating systems should be considered as “mobile console gaming” it terms or hardware and software. I think this way now just because Android is almost identical to the PC gaming sector in terms of ‘fragmentation’ while iOS for example, is more console like due to it’s structure and even playing field for developers.

    When a developer is making a game for XBox360 or PS3, it is basically just a matter of picking your engine since the hardware is pretty much the same across the board. If you’re developing for PC, aside from the engine you use, you also have to decide if you’ll cater to dual- and quad-core PCs only or try to bring support to single-core PCs as well. That’s not even including the various graphics cards available, RAM requirements as so on.

    Yes it makes life difficult for devs and yeah users can lose out but Android is still fairly young. As dual-core devices become the norm and quad-core start to come out in full force over the next year or two, this might not be as big of an issue. Technology is racing ahead in mobile and catching up to PC but it will plateau somewhat eventually like PC has right now with quad-core.

    This certainly doesn’t mean that Google and others can’t do things to help the situation out. Ice Cream is supposed to help bridge the gap between 2.3 and 3.0 although that remains to be seen. Better targeting in the market would also help. The whole fragmentation thing though will either get a lot worse or a lot better over the next year. It’ll be interesting to see what happens.

    • http://www.droidgamers.com ExtremeT

      Excuse the typos. Not fully awake yet it seems.

      • http://Website Andy

        Another reason why this comment system needs to be replaced with Disqus.

    • http://Website Chuck

      Yup. This is the correct answer.

  • http://Website Jjank

    This will sort itself out, but I am highly disappointed with google and their approach with honeycomb. If google doesn’t do something soon, android will become fragmented even more than it already is, as suggested in the article. They need to start setting some requirments for the phone companies/manufacturers so that android can really get its act together. I want to be able to use netflix on any chipset and use my apps on both cellphone based android and tablet based android!!!!

  • http://Website jonathan

    I’be been hearing rumblings that the Xoom will get HDCP support in its update, so perhaps Netflix won’t be limited to only Qualcomm.

  • http://www.corytrese.com/games/startraders/ Cory Trese

    These developers are just not keeping up.

    This is the fault of the bad applications and buggy code.

    Fragmentation is very well managed in the SDK.

    If these applications do not support 3.0, do not run them.

    One Star Them. Find an Alternative. Ask for a Refund.

    PS: I am an application developer.

  • http://www.typhon4android.org/ Mike Leahy

    @Cory… You crazy or a plant! I’ll give you a plain as day example that disproves your assertions that the problem is buggy app level coding by developers. ;P

    That said your comment is the only one I read… Will hopefully have some time to read the rest at some point as these debates are lively.

    As a long time developer (19 years now; 15 of those working primarily with Java; last 10+ with Java real time app / game development) I’ll give you my take. I have been developing with Android since 1.0 and the G1 hit my hands working with OpenGL ES since the get go which started with me porting over significant work from the desktop.

    It’s not the developers fault per se especially when it comes to matters of low level stability for 3D graphics development (IE games). Almost every Android release has had major flaws for low level development which are either inefficiencies or straight up mistakes / bugs that are shipped in the OS and infect the developer APIs.

    I actually since the introduction of Android have been creating a middleware product that provides a very efficient and “sanitized” component oriented architecture providing as universal as possible working order across the ecosystem. This potentially makes it a lot easier for app developers to write software that works on the latest devices and the long tail.

    Most recently with the launch of Honeycomb I finally got the G-Slate last week and ran my platform and demo apps and was greeted with a blank screen.. Nothing.. It took me 45 hours of arduous debugging to find a critical regression in Honeycomb for the Java NIO API that not only crashed my “uncrashable” platform (TyphonRT), but will potentially horribly affect any 3rd party API that moderately uses the functionality of NIO (networking, other native bindings, anything performance oriented likely uses NIO at some point). This is an example of the most dubious kind of fragmentation which are just plain errors, lack of integrity, and lack of quality in the Android platform itself as it varies between release to release. This regression is not found in Android 1.0 – 2.3 and believe me I’ve used and run my code on every version. It’s fixed in Ice Cream Sandwich already, but Android will forever have for 3.0 / Honeycomb only a major flaw that will break software that runs on J2SE / desktop Java 1.4, 5.0, 6.0, 7.0 and Android 1.0-2.3 and ICS and beyond; just not Honeycomb. FAIL.

    For giggles here is the Android developers email list post:

    Here is a postmortem general announcement of the regression:

    And the bug which is marked a defect and is already fixed for Ice Cream Sandwich

    The only ones to blame for this is seemingly Google management. They can decide to make quality a number one priority at any time and hire more or better engineers and / or change the release process to not push out unfinished / beta / untested / unvetted versions. The culture of beta, Google kind of as the progenitors, works great for web apps (Gmail), but is horrible for OS level development with an open ecosystem. Android is developed with “classical” engineering release techniques and methodologies. The additive nature alone to the APIs simply create fragmentation over time. One thing they can do is own up to it and make a fragmentation guide. With no release notes notating critical flaws that developers can review Google is potentially letting each developer have critical code fail when new devices are released with no communication on how to fix things.

    Fragmentation rears many ugly heads though. From a hardware level there are ODM (original device manufacturer) tweaks and not just skins / custom GUI crap. They too make goof ups and modifications that impact performance. Anyone remember the Evo 30 FPS capping issue and the BS HTC spun around that one which I’m still am not convinced was an engineering mistake while trying to triage battery life concerns.

    About the Tegra Zone and stuff like that… No OpenGL is OpenGL is OpenGL. Developers of reasonable sophistication will be able to get OpenGL ES apps running across a wide variety of devices. While it is possible for a developer to say do particular things that may run more efficiently if they are reasonably savvy they can avoid such situations. If Qualcomm introduces a custom API for audio and developers of an app solely rely on it well that can cause problems, but any custom device / manufacturer specific APIs can be managed at a middleware level through TyphonRT in time.

    Basically while I haven’t launched my product / middleware platform yet (tackling fragmentation and other ecosystem problems is touch) things are heating up in the fragmentation space. I’ve been burned many times already and have incorporated these fixes into a unified layer of software that runs on top of Android (1.5 – 3.0) If developers write software to my platform which also has the added benefit of running on top of desktop J2SE / Java then they are protected from the nasties that await below if they were targeting a wide release to run on say 1.5 – 3.0. So heh.. Fragmentation as things go may be good for my business.. but I think it’s kind of funny that I can point to blog posts by others instead of say like a virus company make a press release about X or Y. ;P

    Fragmentation is real folks, it has existed with the entire life of Android, and there are a lot of guilty parties. Least of those are the developers! I am 100% pro developer in saying that the roots of the problem lie elsewhere.

    With all this said I still love (and hate at times) Android and am an advocate; I’ll stick to loving Android if quality of releases improve!

    • http://www.typhon4android.org/ Mike Leahy

      heh heh.. a little proof reading could help.. “tackling fragmentation and other ecosystem problems is touch”…. “touch” should be “tough”.. and “a virus company make” should be “an antivirus companies making” etc & so forth.. ;)

      • http://www.typhonrt.org/ Mike Leahy

        Folks this is a correction post for _my_ original post that is still waiting moderation because I provided some links to examples of major fragmentation IMHO (a critical regression for Honeycomb only really) that I discovered last week and helped Google pinpoint and fix for ICS. Links were to the google developers email list conversations and bug tracker. So these corrections are for my 1st post which is not visible yet as of 4pm Sun; though I made it around 7pm Sat CST. Mods do kindly approve the 1st post.. :)

        • http://www.typhon4android.org/ Mike Leahy

          Gah.. one more correction.. “Anyone remember the Evo 30 FPS capping issue and the BS HTC spun around that one which I’m still am not convinced was an engineering mistake while trying to triage battery life concerns.”

          Missing a 2nd _not_ in there making a double negative perhaps subconsciously avoided.. Basically I’m reasonably convinced the capping was a failed engineering attempt to conserve battery life. There are other examples too where ODMs have messed things up.

  • http://Website t1

    We all continue to say android is still maturing yet in my opinion growing up means making choices and when you don’t choose your direction then you become stagnant. Android is exactly at that point to me, too many companies going in too many directions just to make their device seem more attractive. Yes, we know they need to sale product but In the end you end up with a great phone and and an os that’s barely what it was originally. I just wish there was an off on switch for the modded ui that’s forced upon us, part of being open means choice and we should have that option too. Yea we have the nexus line but if things keep going at this route then what? Nexus handset with different chip sets just so you can have the option of Netflix or hulu on on that device….. then boom fragmentation amoung nexus line. It may seem dumb but at this point I can’t vividly see androids direction too many backseat drivers misleading

  • http://Website Phil

    It’s amazing to me how competition is labeled as fragmentation and bashed. How dis you all think we would get better phones? By everybody making the exact same thing? No the OEMs were going to compete and to do so sometimes they are going to offer something different. If a company can make a better GPU they will. Fragmentation is only a problem IMO because many of these mobile devs came in on the one horse iPhone. They thought they had found the easy way out. Well now with competition in the market they have to do a little more work.

  • http://Website lrnano

    Greate awesome written article… I agree with the article cause not every app is optimize for each OS of Android. I think in due time is going to be much closer to fix the problem is alot of working for the developers to make the app work across different devices on the Andorid OS. But I the only they have to change the screen size that is not realistic. One solution is to stay one OS for a long n make it better for a couple years then change to the next OS number n not change rapidly.

  • http://www.nightshadelabs.com David Shellabarger

    After talking to several of the Tegra Zone game devs at CTIA it seems to me they didn’t really care about Android that much. They were courted by NVIDIA directly to make the games in exchange for heavy promotion of their games. They probably wouldn’t have made the games otherwise.

    I think once game devs start making games for Android and themselves instead of for NVIDIA or for Qualcomm than you will start to see standardization, but right now game devs are being “paid” by chip makers more than consumers. The economics are a little skewed right now in other words.

    If Netflix goes ahead as planned and only released on Qualcomm chips then I will be very upset. I think that would be a huge mistake and the consumer complaints that they would get will get will hopefully force their hand to support more hardware. Specifically, Honeycomb has a new DRM framework that Netflix should be able to use (http://d.android.com/sdk/android-3.0-highlights.html)

    If they restricted it to a certain chipset I will be completely dismayed and the fragmentation argument will indeed be valid.

  • http://Website Elliott Seyler

    Count me as another in support of the DirectX/OpenGL-style approach. If Google creates a “shiny-features” layer between App-level programming and the various fancy chipsets, that then means that both manufacturers and devs have a single target to code at: compatibility with GooGL (Google Graphics Layer, or some such). If you’re developing a fancy game, code using the GooGL libs and problem solved. If you’re developing a new chipset, be sure to implement whatever it is that GooGL libs look for to communicate with the chipsets.

    Problem Solved.

  • WickedToby741

    You see the same thing in the PC realm. I think it will settle out in time as developers get better at developing for Android and chip manufacturers stop popping up. Once there is more standardization of hardware, I don’t think it will be much different than you have with PC’s with AMD and Intel for processors and Nvidia and AMD for graphics. Its a downside of a multi-manufacturer platform, but the result is more user choice. Its an unfortunate trade off, but I prefer choice.

  • http://Website mikey

    The true beauty of android is its openess. The fragmentation is actually a good thing. It allows those companies that want to, to push farther and faster without waiting for everyone to catch up. Its of little consequence if certain games are tegra and others are qualcomm. The best and most supported will find their way to the most devices. Android is to big now to control, just enjoy the ride.

  • http://Website notSean

    Skype for Verizon only, already happening.
    I think apps that dont work on 2.x or 3.x is a developer issue. Things need to be backwards compatible. Of course forward compatible is impossible, so that’s on google.

  • http://Website THIS IS FRAGMENTATION


  • http://Website ramshambo

    If android is fragmented, then windows for PC is fragmented. It’s an operating system that can run on multiple hardware platforms. Some hardware will have features the others don’t have. This is whats going to happen when you have multiple vendors using the same operating system. I don’t believe this is fragmentation as much as it’s unification.

    Try to remember things before android. Every manufacture had their own garbage operating system and none of them worked together or had anything in common.

    Before you go out and buy a phone do your research, just as you would for a PC. Find the features that you care about and want. You might not be able to find everything one phone yet, but it’s coming. This whole smartphone market is still in it’s infancy.

  • http://Website Ric

    I have been saying this for months, ever since I first heard of Tegra Zone.

    If it gets to the point where I’ve invested €50 into apps and games on one phone, and it turns out they won’t work on my next phone because of some label processor that I don’t actually care about, I’ll leave the platform for good.

    It’s precisely why I left the PC world several years ago.

  • http://Website scott yutzy

    I don’t see this as a problem. Android is simply intended to. Be a base operating system. Fragmentation allows hardware manufactures, handset manufacturers, and carriers to compete for your business in an open market. All phones are not created equal and if that kind of openness bothers you then go to your nearest apple store.

  • Uncemister

    I for one am completely thankful for fragmentation. You know why? Because its the first time in MONTHS that it has actually brought fourth intelligent people to discus an important topic, the way the site was intended to be. I’m happy to not see spam.

    • http://www.typhon4android.org/ Mike Leahy

      Indeed. “Fragmentation” is a tough topic though as there are many potential definitions / implications and various organizations who may have a hand in one particular aspect of fragmentation will ignore those aspects in their definition and spin; heh, ever speak with a Google dev advocate on the topic? Two words… “talking points”.. ;P

      From my perspective as a developer fragmentation isn’t device differentiation (different SoCs / graphics processors, or even custom APIs for particular specialized hardware on particular devices) as long as say for instance for graphics OpenGL ES remains the underlying supported API. A lot of people mix up fragmentation with device differentiation. Even OS differentiation across the ecosystem is fine too and I don’t consider that fragmentation as it can be dealt with in a sane manner.

      However combine OS differentiation with different quirks, bugs in each OS release, and continued general low quality of some core performance APIs (NIO has been plagued w/ it’s fair share!) in combination with sometimes shaky ODM support on drivers and or other inefficiencies or lack of full support or even misreported support these kinds of things are the main crux of fragmentation and a source of problems.

      Fragmentation is what happens when differentiation fails to honor standards and contracts of developer APIs.

      • Uncemister

        So where is the, “give this man a beer” button? x3

  • http://Website JD

    Ok I have the Xoom and the HTC desire HD and backbreaker THD runs on both. As a matter of fact when Im showing off the Xoom I use backbreaker as one off the games people think im playing madden. Did you download backbreaker from the tegra zone for your Xoom?
    Also stop whining this is what open source is it leaves room for competition my atrix is beeter then your droid x oh yeah well there making a droidx2 or whateva the phones. You don;t need the lastest and greatest all the time get a phone stick with it if you want something that runs the android J (jenna jameson) (they should name them after female models/actors if you ask me) then hey while you can get an upgrade if not by the time your contract expires they will be a phone better then Jenna Jameson on it by that time….This is open source deal with it if not go to apple so your phone gets the lastest upgraded os that looks like everyone else’s