Jul 30 AT 2:29 PM Dustin Earley 22 Comments

Tackling the fragmentation myth


Have you heard the latest news? Have you seen the headlines? It’s worse than we thought. Android fragmentation is at an all-time high. There are so many devices, running so many different versions of Android, Google has ruined Android by not throwing a choke chain on manufacturers and yelling “HEEL BOY!” every time they consider making more than one phone a year. Or at least that’s what some people want you to think.

According to the latest numbers from Open Signal, Android is a complete mess. There are some interesting facts about the 682,000 phones surveyed, like how dominant Samsung is and how the Nexus 4 is one of the top ten most popular Android devices in use. But their charts can be misleading, and the impressions people are getting from them are wrong.

If you look at the charts on Open Signal’s site and read the comments on the various reporting on them, you’ll notice two common misconceptions being thrown around. One, all these devices with different screen sizes and operating systems make it much harder for developers to make apps, and two, not being on the latest version of Android is terrible and OMG fragmentation.

You can argue whether or not those things are true or whether or not they’re bad, but the simple fact of the matter is that Google developed an adaptive operating system and development environment that tackles these problems, and they are getting better all the time.

As an Android app developer, you already know not to develop for any number of screen sizes. You instead use the tools Google gives you to make an app that scales and adapts to any screen size. As an Android app user, you may or may not have already noticed this. Some apps scale really well and play nice with all kinds of devices, while others aren’t quite there yet.

Either way, it doesn’t matter what version of Android you are on or what screen size you’re using, if apps are developed right it shouldn’t matter. Don’t place the blame on Google here; they’re not the problem. It’s the same problem that exists right now on iOS with apps still using non-iPhone 5 screen resolutions, creating hideous black bars in apps, and the same problem that’s going to be worse when iOS completely changes its look and developers are scrambling to make apps that fit in. They’re all developer’s problems. Not Google’s problems. Not Apple’s. Developer’s. Again, Google provides the necessary tools to make any app look good on any display. And it’s not that hard to do. It’s up to developers to utilize these tools.

As time goes on, scalable, adaptive apps are going to keep getting better and better. Google suggests developing for three different screen sizes — phone, mid-size tablet and large tablet — and apps will adapt in-between. They may not be the ideal, pixel-for-pixel developer porn playground some people think an operating system needs, but they work. And they work well.

The other major problem Open Signal tries to places emphasis on is what operating system version and API level a device is using and how it’s causing fragmentation. We’ve talked about this before, but it bears repeating. Google has solved this problem in the form of Google Play services. Google Play services is an app that is pushed to any Android device using 2.2 or higher and contains the latest Google services APIs. In other words, 98.5% of Android devices are running the newest APIs thanks to Google Play services.

Google put a lot of work into Google Play services this year, and it has made a huge impact. Google Play services is the reason why every Android device on 2.2 or higher is now running Hangouts instead of Google Talk. It’s the reason why 98.5% of Android users have access to the latest Google services APIs, no matter what firmware they’re running.

Google is adding more into Google Play services, just like they’ve added more apps into the Play store, separating them from the core OS. With these two things alone, Google has solved the fragmentation problem. Fragmentation, at least in the way that it’s still portrayed to this day, doesn’t exist. There’s still a lot of intense debate to be had surrounding the topic, but the bottom line is that it’s nowhere near the problem it’s often played up to be.

Source: Open Signal

Dustin Earley: Tech enthusiast; avid gamer; all around jolly guy.

    Most Tweeted This Week

  • Hugh Isaacs II

    The argument was always stupid on the developer side.

    It’s simple, code your apps to check for features and version numbers before trying to access these things.

    if (Camera) {
    //Do camera stuff here
    } else {
    //Do stuff for those that don’t have cameras here

    And for varying screen sizes, don’t use bitmaps for everything and have the app always fill the screen width.

    The last bit I can say is don’t assume that your users have a touch screen to support Google TV, Ouya, Android x86, Blue Stacks, etc…

  • Haggie

    Hmmmm, it is amazing how fast my phone works even with all of this fragmentation. Is there an app that I can download to get rid of fragmentation? Maybe I should switch to an iPhone. I hear they have much less fragmentation.

    Oh, wait. This is not a consumer issue. It isn’t even really a developer issue. It is a NON-issue.

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

    Another one of these posts Dustin… :: sigh :: I’ll try and make this short(er) given that this is a recurring theme of misunderstanding that lies in a lot of your opinion pieces on fragmentation.

    A) Google has not fixed “fragmentation”

    B) Soft and hard fragmentation that affects developers will always be present with the Android SDK (IE the layer of software apps are written against).

    Soft fragmentation is the additive manner in which new API functionality is exposed over the incremental versions of Android. This is nasty especially for classes like “View” which are core to making standard apps because each API level brings new functionality which isn’t easily backported to previous versions of Android. Android 4.3 brings yet more functionality to View in this manner. Soft fragmentation is also the deprecation of functionality over time.

    The fact that Android is based on traditional object oriented programming is what makes it very fragile over time and different form factors in regard to developers ability to maintain apps over time and / or release apps to the largest swath of the ecosystem.

    Hard fragmentation for developers are the inherent bugs that make it into shipping versions of Android. The things that worked in one version that fail in the next version only to start working in an even further version. Google Play services do not affect the API / SDK / framework and propensity for bugs to get into the shipping version of the Android OS. Admittedly I’ve seen less show stopping bugs in recent versions of the OS, but it’s hard to forget the past. Let’s just hope the QA process only gets better.

    The fact that the SDK / APIs are hard locked to OS versions / firmware makes this layer of software indifferent to changes over time. Hard and soft fragmentation, the kind that really affects developers, but isn’t talked about on the blogs or in your opinion pieces is not going away. It doesn’t matter how many Google Play services are launched.


    The poster above, “Hugh Isaacs”, gives a very naive solution to a difficult problem. Conditional logic embedded in an app is not a good solution to the problems of device or OS differentiation. It makes an app very brittle and hard to debug and reason about in regard to maintenance especially when the original developers are no longer employed at a company.

    Developers still face fragmentation… QED

    • aaronfuj

      Well said. I had made a similar post to this one but I guess it didn’t go through since I was a guest. The overall takeaway I wanted was similar to this: Developers still face frustration, and it can be quite a headache. It may not always be difficult, but it is extremely time consuming. The normal user may not see it as often because the large well known apps are regularly maintained, updated, and tested. It is hard to continuously do this for smaller apps / developers.

    • morris

      If your statements are true, doesn’t apple also suffer from fragmentation?

      They now support three different resolutions, that have to be hard coded, because iOS isn’t as flexible as Android and won’t scale apps to the different screen sizes.

      They also have to deal with multiple processors, as a 3gs is not as capable as the 5 or new iPad.

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

        Short answer is yes, but likely in a slightly more controlled way.

        In many ways the iOS ecosystem has it’s own difficulties with fragmentation. Naive solutions like embedding conditional logic in apps while not a good software dev practice for dealing with differentiation is more manageable with the iOS ecosystem due to the controlled / limited release of devices.

        Regarding processors for instance, so far iPad / iPhone devices have used the same GPU vendor (PowerVR) for all devices, so the custom things developers do for say texture compression work across all iOS devices. That is a benefit of a controlled ecosystem for the most part and is not the case with the Android ecosystem on that particular matter.

        Another thing since I can’t totally comment on is the amount and location of API changes to iOS compared to Android in the developer SDK (IE soft fragementation). It would be an interesting study I suppose because on the Android / Google side of things it seems like there is no grand architect who is reigning in individual teams of Android devs who are adding new functionality to the SDK each release. In many ways it seems like a free for all every release. What I mean is that some APIs that have existed since Android 1.0 are constantly being morphed and extended each OS release vs there being major release points where a bunch of changes are made in a more disciplined / controlled manner. I’m curious if there is the same kind of churn in the core iOS SDK for app dev. My guess would be that there is generally less of it.

        I can’t speak to hard fragmentation on iOS either regarding show stopping bugs between releases. I’m sure the maps fiasco hit iOS devs in some manner. The kind of show stoppers that have hit Android are from inadequate QA. Technically it’s less QA burden in a controlled ecosystem, but I’m sure the iOS ecosystem still has quirks for low level development.

        BTW.. Not all hard fragmentation originates with Google. There have been times when OEM peculiarities have popped up though less common.

        • Wenger

          The support library is a good tool and a lot of new APIs get put into that. It relies on 2.1 standard APIs to make things backwards compatible.

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

            The support libraries help along with other 3rd party efforts (ActionBarSherlock, HoloEverywhere, etc). The support library makes some things backward compatible and for a few of those things they sort of work.

            An example is back porting the fragment API and getting it to work with the map API. It exposes some issues with object oriented development too. A discussion on that:

            The support library abates a few aspects of soft fragmentation, but there are areas of the SDK it doesn’t cover that are under relatively high amounts of change. It’s also “soft” because it’s still manageable to various degrees. Hard fragmentation is the elephant in the room and those things can’t be fixed by the support libraries. Thankfully that elephant is seemingly getting much smaller for now as time goes on; at least things have been smooth sailing “4.x+”.

      • scaarg

        I consider the lack of features in older devices fragmentation, but it could be just me.
        It’s something that nobody says but the iPhone 3GS is not capable of doing the things the iPhone 5 does and it I’m guessing it would be worse when iOS 7 rolls out.

        I know about this because my mom used to have an iPhone 3G and she couldn’t install apps because it had an older version of iOS. When we gave her a Galaxy Y she installed all the apps I’ve on my Nexus 7 without problem.

    • MiCk

      These are inherent to any OS.
      How many screen resolutions for Windows & Linux PC ?
      How many king of graphic cards, mother board, etc… ?
      How many release still in the wild ? How about the return of old OS thanks to VM democratisation ?

      Whether android is fragmented or not is a non sense question. Android must face fragmentation as any popular and evolving OS must do.
      Still, Android is not worse in these regards. It is better !!!

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

      Well… This didn’t take long. A very clear example of hard fragmentation introduced with Android 4.3. Basically looping a sound clip was possible on every version of Android prior, but now it’s broken on 4.3. What this means is that all of the 3rd party game dev frameworks that folks use to create games / apps broke due to an Android bug that is only present in 4.3. App developers can directly use this API of course and their apps are broken too.


      Just when I tried to get optimistic with Android and the “elephant in the room” getting smaller it eats a power pill and blows up…. :: sigh :: Here is a quote from a commenter on the above serious bug:
      “Audio in Android is a big mess….. ;/”

      Dustin et al, fragmentation, real fragmentation, is never going to go away and sometimes it gets worse release to release. Facts of life for devs, because lets face it.. Google has only gotten a barely passing grade over time in the QA department… This nasty little sound snafu is likely going to be fixed and only affect devices running the initial 4.3 release; let’s hope at least!! It’s kind of a major oversight for some app categories like games..

      Developers still face fragmentation… QED

  • GrendelJapan

    I was going to respond to a post on GigaOm on this topic, but said, forget it. Nice to see something a little different here.

    Every new Android release is accompanied by a new round of days about fragmentation, which in turn is followed by a slew of “analysis” pieces.

    In basically all such pieces, the assertion is made that it is bad for consumers. Where is the data to support that assertion? What percent of customers are even aware of a new release, much less the new feature set? What percent of customers base their satisfaction with their current device on a comparison with, not the latest phone hardware, but the latest features of a new mobile operating system? What I’d the average lifespan of a mobile device anyway?

    I don’t know anyone, other than very serious enthusiasts, who sees this as a problem. As far as i can tell, most people aren’t aware of the latest Android releases and their satisfaction is unaffected by it.

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

      In respect to consumers you may very well be right. For developers, nope, it’s still a problem. Where it becomes a problem for consumers especially those on a 2+ year upgrade cycle is that due to the dev difficulties of Android an increasing amount of app developers are simply choosing to develop for the latest OS version 4.x+ and not try and get apps out to the larger ecosystem. IE as a consumer one could potentially find themselves not being able to use newer apps, because developers took the easy route of simply ignoring old OS versions.

      With posts like Dustin’s though he states untrue things like because Google is now releasing service based APIs that this ends all fragmentation. By decoupling new APIs and services from the firmware this certainly aids in the flexibility of deploying these new service based APIs to a large part of the ecosystem, but doesn’t change how the core SDK is being deployed, etc. Basically, it’s still “same old same old”.

  • Graham Steffaniak

    I have never heard a single non-geeky android user ever say “why doesn’t my phone support the same apps as other androids?” Because they all work fine.

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

      Guess I left out the “may” qualifier… IE Where it _may_ become a problem for consumers… ;P

      Otherwise indeed consumers aren’t overly affected by OS and device differentiation. It’s just the developers who potentially get taxed and make less on the Android platform due to the extra time required to handle the associated problems if it’s a priority to release an app to the wider ecosystem.

  • kazahani

    Well the fragmentation myth has been tackled.

    At least that’s done.

  • donger

    Well people will buy the newest phone on the market even if it’s a minor upgrade from previous year. Most people don’t look at statistics like this.

  • Pete

    The Device Fragmentation graphic includes iPhone 5. WTF?

  • Sameer

    Android fragmentation does not bad for android developer as android has lots of tools to support android application on different screen size and density.
    Even its good for us , because of this fragmentation we reach to more user.

    Diversity in price, hardware and screens provide users choice which is strength of android

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

      As things go a big misnomer in the general blogosphere and practically all news sources on Android has totally gotten wrong is that “fragmentation” is not different screen sizes or densities. That is “OS & device differentiation” which indeed is a good thing for Android and there are tools to handle such matters.

      For developers as I elaborated on above in more detail the real problems are the soft & hard fragmentation that occurs between versions; rampant API changes and also bugs that make core features break. There have been plenty of bugs introduced into Android where for an API / SDK call one version of the OS works, the next doesn’t, then the following one fixes the problem. There is no tool to fix broken OS / SDK level software between versions. As a developer one must code around such problems on particular versions of the OS thus often introducing custom code to handle things on one OS version compared to the next. If you are a new developer to Android there is a fat chance you’d ever be aware of the pitfalls of developing for older devices / OS versions / API levels.

  • mrfidgit

    there is no fragmentation if you “imprison” developers and customers. Let’s all just stick to monopolies! FAST!

  • OnIn2

    talk about fragmentation… GM has fragmentation They have a

    2013 model

    I see Dustin is trolling to generate responses again