9 ms·
Android Fragmentation Visualized
- nextparadigms 14y agoSo what can Google do to reduce the problem? Release only one major version of Android every year? Every 3 years like Windows? Release a private "beta" version for most manufacturers (not just one like now) so that they all have devices with the new OS on the official launch day? Develop better abstraction layers for hardware? Force manufacturers to use only a few resolutions like 480x320, 800x480 and 1280x720 (retina) for phones, and only 1280x800 and 2560x1600 (retina) for tablets? What can Google do so that Android still supports many different devices from different manufacturers, but the fragmentation issue is dramatically minimized?
- bonch 14y ago> What can Google do so that Android still supports many different devices from different manufacturers, but the fragmentation issue is dramatically minimized? These two goals are in conflict.
- taligent 14y agoThey really need to structure the OS so that the core components can be updated independent of the vendor ones. Then just ship updates regardless of what vendors do. People act like Google is somehow unique here. Microsoft and Linux support a vastly more complex array of hardware configurations and still manages to support a diverse ecosystem above the core OS.
- Steko 14y agoNot sure why downvoted this is certainly the biggest thing Google can do to help alleviate fragmentation. Of course it does run into two opposing aims: (1) "cracking down" on the carriers at a time when Microsoft is literally throwing cash at them in an attempt to buy market share may by counterproductive. (2) shipping os updates independently of carrier ui layers can break major ux or, even worse, crash the whole device. What else could Google do? Well they could keep their major vendors in the loop instead of just dumping the new code on them after each nexus launch. I mean ICS launched in October but because of the development time frames involved many new handsets launched in the last couple months still shipped with Gingerbread. How about this: if you're an Android branded product and decide to make a substantial UI layer modification you need to give google the source code and a team at Google will work to keep your differentiation layer working with updates.
- king_jester 14y ago> They really need to structure the OS so that the core components can be updated independent of the vendor ones. Then just ship updates regardless of what vendors do. Except that won't work because what vendors do is modify core system components. Network stacks, audio/video codecs, system themes, etc. are all things changed by carriers and manufacturers for a variety of reasons. There are two core reasons why Android OS updates are slow to roll out: 1) there is no profit motive to upgrade phones that have already passed their prime retail lifespan 2) modifications made my carriers/manufacturers are not simple and often have dramatic consequences for how the phone and apps on the phone behave For companies like Microsoft, there is a profit motive to updating released software and selling larger OS upgrades at a price. For Linux users, the onus to upgrade comes from the users themselves, much like how there are those that choose to install custom ROMs on Android to get those advanced features. Regardless, the fact that you can create an Android app that runs on so many hardware configurations is extraordinary. The downside to the popularity is that its likely your app won't run on every hardware configuration, so the question is how will Google mitigate that problem?
- drivebyacct2 14y agoWhat a terribly obvious misnomer. 1. OEMs deserve 90% of the blame for being slow. CM is proof that OEMs are absurdly slow at updates, almost surely because they put absolutely no priority on supporting old devices. People blame Google because OEMs are greedy and lazy and are more interested in making the next buck than support an already cashed-out device. 2. Building a ROM for a phone is wildly different than adding hardware support to the Linux kernel or bundling drivers. Number one, because that is flat out impossible to do on mobile devices due to reasons that I only understand as "component manufacturers have tight control of software radio components", to the point that it makes it nie impossible for Google to distribute everything to make complete images even for their own Nexus phones. 3. OEMs over customize because they have access to the source code. They can do >= 90% of their customization using stock Android and just change what ships by default, but because they have the source, they tear into it and modify every last piece. If you don't think this would happen if OEMs had source for Windows, you're crazy.
- huggyface 14y agoSo what can Google do to reduce the problem? What problem? The linked article could as easily have been called "The Diversity of Android". That title would have been more honest, if less likely to get linked.
- r00fus 14y agoDiversity is all well and nice, but how do developers possibly test against all those configurations? If you don't test - how do you ensure that as low as possible a percentage won't return your app, and ding your ratings simply because their phone has issues with your software? Google needs to do more work to make software development and testing easier - as an end customer I don't want the pain of having to guess if the software I buy is or is not going to work.
- huggyface 14y agoThe Android ecosystem is an incredible success. There is massive compatibility, with very few issues, across thousands of devices from weak to powerful, big and small. Maybe Google actually did something right? And no, you don't need to test against all of those configurations. Did the linked product? No. They used the incendiary fragmentation line because it gets hit, but actually point to no specific problem with it (besides, bizarrely, pointing out that Google has added functionality to scale for screen sizes...which has been a fundamental part of the Android development suite since day 1).
- taligent 14y agoVery few issues ? Clearly you don't know what your talking about. I work in a team that does Android and mobile website development. We NEED 20+ devices versus 4 for Apple. And there are lots of vendor specific issues which require you to own those devices even just for comparing web site rendering behavior. And there is nothing magic about Android working on different devices i.e. it's not like ICS works on them. They just are running old versions of Android.
- 14y ago
- cek 14y agoThere is nothing Google can do about it. The cat is out of the bag, so to speak. Everything they try will simply make the problem worse. - Release new versions faster? Nope. More fragmentation. - Pressure MOs/OEMs to only ship latest versions? Nope. Just pisses them off and makes them more inclined to fork. - Reduce flexiblilty (better abstraction layers for hardware) ala WP7? Nope. MOs/OEMs care most about flexibility which got them on Android to begin with. They'll just fork. - Do something really innovative. Maybe, but it would have to be mind-blowingly-differentiated. Can't find any proof points of Google doing that in the past, so have to assume it won't happen in the future. Android is alive and well. It is an extremely healthy ecosystem. But it is no longer Google's ecosystem. And it will continue to fragment no matter what Google tries. FWIW, I wrote about this in depth earlier this year in a post titled "Fragmentation is not the End of Android" here: http://ceklog.kindel.com/2012/01/14/fragmentation-is-not-the-end-of-android/ http://ceklog.kindel.com/2012/01/14/fragmentation-is-not-the...
- drivebyacct2 14y ago>Maybe, but it would have to be mind-blowingly-differentiated. Can't find any proof points of Google doing that in the past, so have to assume it won't happen in the future. Right, because Android itself doesn't meet that exact specification? A completely free operating system that is enormously huge on hundreds (thousands yet?) of different devices that anyone can build and distribute without royalties? It literally changed how smart phones exist and has put them in the hands of people that would never otherwise own a smartphone. If you want revolutionary, check out boot to gecko. Even cheaper phones, more transparency, all open standards.
- deleted 14y ago[deleted]
- inoop 14y agoDo what Sun did for Java, create a really extensive test suite and make sure no device gets the Google stamp of approval unless it passes.
- jcromartie 14y agoI did some research this morning, since I might be doing some Android work soon. As of May 1 2012, about 5% are on any version of the latest major release: Ice Cream Sandwich. About 3% are on the previous major version: Honeycomb. The rest, a whopping 92%, are still two or more major versions behind. By developing against the latest major version, you are going to reach 5% of Android users. Compare that to iOS, where developing for the latest major version (5.0+) means reaching maybe 80% of users.
- juliano_q 14y agoHoneycomb was not the previous major version. It was a version released only for tablets. The previous major version for mobile/tablets was Gingerbread (2.3).
- ajross 14y agoYou're mixing things up, so I'd suggest going back to do more research. Honeycomb was tablet-only, it was never released for handsets. That's like complaining that only 7% (or whatever) of iOS users can run iPad apps, it's meaningless. ICS uptake, however, has been ploddingly slow. It's finally breaking through now as the vendors clear out their holiday inventory and start pushing new models.
- taligent 14y agoSee what you wrote though ? "As vendors .. start pushing new models". There seems to be this acceptance on the Android platform that in order to get the latest OS you basically have to buy a new phone. It's quite extraordinary.
- ajross 14y agoI don't disagree at all; you're inferring an argument I didn't make. Nonetheless uptake of ICS is increasing, and the driver is that vendors are shipping new handsets.
- 14y ago
- billjings 14y agoCould you guys get a simple histogram of the model data up? The 2d visualization is clever, but it does not tell me what I need to know: does the distribution have a long tail or not? It sort of looks like it does, but the visualization obscures the truth and prevents comparison with similar datasets.
- sinak 14y agoyeah very true, we'll try and throw one up to show that a little more clearly
- billjings 14y agoThanks! The data is killer, btw.
- glogla 14y agoI too would be thankful for that. Sometimes, simple histogram is the best way to show something. And while you're at it, I think that cumulative version chart would be interesting for readers as well. Even now, lot of carriers are pushing cheap phones with Android 2.2 or even 2.1 and while for better known devices this can be fixed with CyanogenMod, the state of Android versions is still bad.
- estel 14y agoNot the same thing, but Android Police put together a decent histogram of Platform Versions: http://www.androidpolice.com/2012/04/27/the-big-android-chart-a-definitive-history-of-android-version-adoption/ http://www.androidpolice.com/2012/04/27/the-big-android-char...
- luigi 14y agoIt seems to me that the best way to think of Android is to compare it to the world of Linux distros. (I believe Dan Benjamin of 5by5 pointed this out on one of his podcasts.) Yes, there's Linux, but there's no one Linux. There's Android, but there's no one Android. So while Android is technically an operating system, it's really an open platform on which to build mobile devices on top of. So the Android device I buy is that vendor's take on the hardware and the software. Google has its own take, as does Amazon, as does Samsung. When viewed in that frame, it's not so frustrating or confusing, or even an actual problem. Fragmentation can be viewed as a natural consequence of the open Android ecosystem.
- bonch 14y agoYou seem to believe that the mere fact it's a natural consequence makes it not frustrating, confusing, or problematic. Android's fragmentation drives away developers and gives users stuck on old, customized versions little chance of updates.
- sciurus 14y agoThe alternative isn't for all these devices of different sizes and capabilities not to exist. The alternative is for them all the be running even more disparate, vendor-specific operating systems. We should be thankful for the degree of unification Android's success has brought.
- cube13 14y agoOne of the annoyances I've had with Android, from a new consumer's point of view, is that it's presented as this monolithic OS that's the same across every phone. But once you do the research, you find that it's really not. Except for the Nexus line, there really isn't a "Google Android" experience. When you buy an Android device, you're really buying HTC's, Samsung's, Amazon's or Motorola's Android. Every device has different capabilities. Some ship with different Google services out of the box, others ship with their own internal apps. Google's Android strategy is that every manufacturer can make their own Android shell, without placing any requirements on the vendors as to what version of Android they're using. It's a great thing that there's all this choice for the devices. It's a great thing that Android allows this kind of freedom. But it's led to a lot of issues for Google and for developers. The problem that Google has is that they've effectively lost control of Android. They can't force manufacturers to use the latest version of Android. So they're left with situations like this, where the vast majority of Android devices are running an old version of the OS, and will never be updated to the newest version, because the manufacturers just don't want to[1]. So the result is that they have to support around 4 different codelines at the same time(ICS, HC, Gingerbread, and Froyo). It's a problem for developers because your display code might not look right on a new device with a weird screen resolution. Or you might need API calls that are only in 4.0, which would lock you out of 90% of the devices right now. No, the alternative is for Google to exert control over the device manufacturers and state that if they're going to be using the Android OS, they need to support and update their devices to the latest version for at least 2 years after the phones are released. [1] There is a good economic argument that patching phones that are 18 months old with 24 month contracts about to be up just doesn't make sense, but honestly, it comes down to that the manufacturers just aren't willing to do it.
- btipling 14y agoI love my Android phone and I love developing for it but I sort of think that sometimes we have a little bit of Stockholm syndrome when I hear another Android developer say "fragmentation is great!." It really isn't, especially not with the differences between 2.3 and 3+, but I like being able to put my own apps on my phone without paying $99 a year, so I like my phone quite a bit.
- romeodelight 14y agoI think for Asian developers, specially in China, fragmentation is a HUGE problem. There are literally hundreds of variations of cheap Android phones out there with different screen sizes, OS versions, etc. We replace our phones regularly here in the US and have access to the latest phones from Samsung, etc. but that is not the case in most parts of Asia.
- fpgeek 14y agoI don't think it is that simple. In Asia, which is ground zero for non-Google Android devices, fragmentation is certainly a problem, but the absence of fragmentation would have been far worse. Without fragmenting an open-source Android, manufacturers just wouldn't have been able to make and sell the cheap smartphones Asian developers are targeting.
- ajross 14y agoI'd tend to agree. But at the same time I do get sick of all the articles like this one harping on "fragmentation" instead of actual porting issues. That's the clue that tells me the linked article was written by Apple fans with an axe to grind. If people viewed this as an important problem worth solving, we'd see articles about how to do aspect-independent UIs, or apps that cleanly upgrade to gestures in Gingerbread+. Or cute workarounds for rendering bugs on the SGX vs. Mali vs. Tegra. But we don't see any of that, because quite frankly most people don't care. Outside of stuff that directly faces hardware APIs, Android apps port quite well in the real world. Contrast, for example, the web development world. There, platform compatibility issues have been a huge problem for years, spawned a bunch of frameworks to abstract the differences, and inspired sites like caniuse.com. The clear lack of these in the Android world is, I argue, an existence proof that "fragmentation" is a red herring.
- jjguy 14y agoAlso: Michael DeGusta's chart from Oct 2011 http://theunderstatement.com/post/11982112928/android-orphans-visualizing-a-sad-history-of-support http://theunderstatement.com/post/11982112928/android-orphan...
- kaffiene 14y agoAndroid is fragmented in the way that Windows or Linux are fragmented. The same OS, many different hardware devices, manufacturers and OS/patch levels. People have done OK making software for these systems.
- deleted 14y ago[deleted]
- Steko 14y agoGood news everyone: "Google to sell flagship Nexus devices with multiple partners this fall, reports WSJ" http://www.theverge.com/2012/5/15/3022682/google-direct-sales-multiple-device-OEMs http://www.theverge.com/2012/5/15/3022682/google-direct-sale... linking verge because, paywall. Apparently google read my comment below, made a major business decision and leaked that to the WSJ all in the last hour. Me ITT: "Well they could keep their major vendors in the loop instead of just dumping the new code on them after each nexus launch..."
- nextparadigms 14y agoI think this is a major move in the right direction: http://www.theverge.com/2012/5/15/3022682/google-direct-sales-multiple-device-OEMs http://www.theverge.com/2012/5/15/3022682/google-direct-sale... It should bring a lot more stock devices into the market. Manufacturers will be able to upgrade their devices faster, and if Google is smart, they will stick with 1 major release per year rather than 2, and this way manufacturers will have to upgrade their devices only twice in 2 years, rather than 4 times. And we won't have this problem of being "2 versions behind".
- tdpeterson 14y agoI love information like this, and I think the OpenSignalMaps opinion is healthy. Basically, it's cool to have an install base this diverse and dynamic. Maybe this is because I come from a traditional desktop dev background where diverse HW and SW environments were just part of the game. I recently co-created an automated web-service that tests apps on real devices, and of the thousands of tests we've run, the majority of the failures and errors are more general software development issues. Errors caused by assumptions about the presence of other apps or network connectivity or the inability to handle certain transitions like screen orientation are much more common than device-specific problems like CPU type. It does happen, for sure, but not nearly as often, and free services like ours seek to mitigate these errors altogether.
- andyjohnson0 14y agoThere seems to be a tendency to use 'fragmentation' to imply something vaguely negative - a kind of problematic deviation from the norm. I Prefer to think of it as diversity.
- dagw 14y agoI think it depends on your perspective on things. As a consumer I love the diversity of the Android landscape. As a developer I dislike the fragmentation of the Android landscape.
- andyjohnson0 14y agoAs a consumer I agree with you. As a developer, any frustration I have with the frag... ah diversity of Android is more than offset by the greater potential that it offers me.
- nodata 14y agoyes, or "choice". Having lots of different screen sizes is never "fragmentation". Having different versions of Android? Maybe.
- Stokestack 14y ago"Fragmentation allows users to take their pick from thousands of devices." This person doesn't understand WTF fragmentation is.
- Stokestack 14y agoDisappointing post. I was expecting a graph of the dozens (or more) versions of "Android" running around on devices that are being sold today. I'm tired of seeing "Android" cited as a single OS in all kinds of statistics, when in fact it's a pile of proprietarily hacked OSes with a common heritage.