The sorry state of Android hardware fragmentation

Status
Not open for further replies.

avi

Keymaster
Recently as you might have read Android secured 50% mobile market share in US market & that's huge ! Congrats to Android for that
happy19.gif


but...

There’s a bigger problem facing Android, and one that has an even greater negative effect on developers than operating system fragmentation: device fragmentation.

When we talk about Android fragmentation, as a rule we’re talking about the shocking number of operating system versions that are in use at any one time, and how users are slow - not through their own fault - to adopt the latest and greatest release.

But there’s a bigger problem facing Android, and one that has an even greater negative effect on developers than operating system fragmentation - device fragmentation.

How bad is the problem? Here’s a conversation on Twitter between Natalia Luckyanova, co-founder of indie iPhone development company Imangi, and David Smith, an independent iPhone developer:

rrNtW.jpg


[font=Verdana, sans-serif]Speaking to [/font]The Next Web[font=Verdana, sans-serif], Smith outlines the top six Android devices running his [/font]Audiobooks[font=Verdana, sans-serif] and [/font]Audiobooks Free[font=Verdana, sans-serif] apps based on 1.3 million downloads:[/font]
  • Droid X (7.8 percent of users)
  • Samsung Galaxy S2 (4.3 percent)
  • Droid (4 percent)
  • HTC Desire HD (4 percent)
  • HTC Evo 4G (3.7 percent)
  • Droid incredible (2.3 percent)

[font=Verdana, sans-serif]Remember, these are the top six devices out of a total of 1,443. Factor in the Android version that these devices are running, Smith says that half of the users are running Android 2.3.3 and then the rest are on versions ranging from 1.6 to 4.0.3. No developer can be expected to support hundreds of devices running a variety of aging platforms.[/font]

[font=Verdana, sans-serif]By comparison, with 8 to 10 different iOS devices, Smith says he can cover 100 percent of iOS users. To do the same with Android he would need thousands of test devices, and then test the software across all devices and platforms - an impossible task.[/font]

[font=Verdana, sans-serif]The Android fragmentation is seriously affecting developers. It’s bumping up support costs and low reviews for the app from dissatisfied customers. Unhappy customers posting negative reviews because of hardware compatibility issues can be lethal for an app, even when the developer is not to blame for the problem.[/font]

[font=Verdana, sans-serif]Google may be seeing 850,000 new Android device activations per day but it seems that these are primarily devices running older releases of the Android platform. It’s also likely that adoption of Android 4.0 is being slowed because handset makers, and carriers are painfully slow getting the update out to customers with handsets that can run it.[/font]

[font=Verdana, sans-serif]This, in turn, is harming Android developers. And these Android developers are the folks who build the ecosystem and give people a reason to embrace the platform.[/font]

[font=Verdana, sans-serif]Really good article at zdnet - http://www.zdnet.com...mentation/19427[/font]
 
This is serious and getting more complicated since Android 2.2. Google should do something about it. The reason why I love Apple, iOS and ONLY few devices (iPad, iPod, iPhone) supporting it. Development growth is much better and fragmentation is like 0.000%
<
 
Why android can't be like Windows or Linux?

Both operating systems have many versions and still support various hardware devices and applications?
 
All companies should concentrate on releasing maybe max 3-4 phones a year and supporting them properly for at least 2 years, rather than a dozen devices. Also in markets like USA, they've like 4 different variants of the same phone released for different carriers, with their own bloatware bundled. All this add to the fragmentation.

Choice of the phone plays a big role in user experience in Android. For end users, Google phones and popular flagships are the way to go to ensure proper support for OS updates as well as app compatibility.
 
On top of this, each and every company wants to have their own UI like Sense, TouchWiz and what not and carriers (in US) want to first install all bloatware and then pass on the updates to customers.

I know one may try to defend saying it is good to have choices but i say not till the point that makes you confuse.

I have even had ROM compatibility issues wherein there was this certain app which downloaded fine on my ZTE blade (from market) when i had some old custom ROM but now when i have CM7 (don't know which version), the same app says it is not compatible with my phone...really ???
 
Read this comment below the article.

What applications are these people using such that it needs to be written on a per-device level? I've got an HTC HD2 running Android 4.0, despite it shipping with Windows Mobile 6.5, and have yet to have an app that didn't run on it (running WELL is a bit of a different story for graphics intensive games like Temple Run, etc.). I don't understand why having lots of different hardware is a problem for Android when it isn't for Windows or Linux.

Wanna know what was REALLY a problem to develop for? Windows Mobile. Even if you only developed for Windows Mobile 6.0, 6.1, and 6.5, it was a nightmare from a hardware perspective. Just those three releases brought us devices with 300MHz CPUs and 128MB of RAM, all the way to 1GHz CPUs and 1GB of RAM. Some had a GPS, some didn't. Some had Bluetooth, some didn't. Most had Wi-Fi, some didn't. Some had infrared, some didn't. Some had a CompactFlash slot, some didn't. Some had an SD/MicroSD slot, some didn't. Some had a cellular baseband in it, some didn't. Some had a hardware keyboard, some didn't. Some had 320x240 screens, some had 600x400 screens, some had 800x400 screens.

Android developers can assume that roughly 90% of devices have at least an 800MHz processor, a screen that's generally the same proportion, Wi-Fi, Bluetooth, GPS, an on-screen keyboard, and a MicroSD card. While I'm sure there are a handful of exceptions here and there, the dozens of Android running devices I've used have all had those specs in common. Just about the only applications I've seen that have justifiably needed to be model specific were rooting tools, ports of ClockworkMod, etc. Other than that, well, regression testing on 1400 devices for Angry Birds is a smidge excessive. Again: Windows and Linux do just fine on tens of millions of hardware combinations.

Joey
 
This is serious and getting more complicated since Android 2.2. Google should do something about it. The reason why I love Apple, iOS and ONLY few devices (iPad, iPod, iPhone) supporting it. Development growth is much better and fragmentation is like 0.000%
happy19.gif

iOS has one tiny but serious fragmentation, but nothing related to Dev. Siri -> exclusive for Ip4s.
 
Read this comment below the article.

I am quite tired of people defending fragmentation by solely providing their experience. You have to keep in mind that most buyers won't be power-users and would expect promised functionality from any app. Not everyone will find out time to troubleshoot an app by visiting online forums and such.

[font=helvetica, arial, sans-serif][background=rgb(247, 247, 247)]Android developers can assume that roughly 90% of devices have at least an 800MHz processor, a screen that's generally the same proportion, Wi-Fi, Bluetooth, GPS, an on-screen keyboard, and a MicroSD card. While I'm sure there are a handful of exceptions here and there, the dozens of Android running devices I've used have all had those specs in common. Just about the only applications I've seen that have justifiably needed to be model specific were rooting tools, ports of ClockworkMod, etc. Other than that, well, regression testing on 1400 devices for Angry Birds is a smidge excessive. Again: Windows and Linux do just fine on tens of millions of hardware combinations.[/background][/font]

This guy is clearly speaking from his arse and has no clue what's it like to develop for any mobile platform. Hell, I doubt if he knows anything at all about developing applications! I was working on developing a remote file explorer for android a couple of years back. I had an HTC Desire and samsung spica at my disposal. The app would run on the former flawlessly but had all sorts of problems on the latter. In short, you absolutely need to test your app on a hardware platform to make sure it works. You can't use approximation to give green signal to any device!
 
I am quite tired of people defending fragmentation by solely providing their experience. You have to keep in mind that most buyers won't be power-users and would expect promised functionality from any app. Not everyone will find out time to troubleshoot an app by visiting online forums and such.

This guy is clearly speaking from his arse and has no clue what's it like to develop for any mobile platform. Hell, I doubt if he knows anything at all about developing applications! I was working on developing a remote file explorer for android a couple of years back. I had an HTC Desire and samsung spica at my disposal. The app would run on the former flawlessly but had all sorts of problems on the latter. In short, you absolutely need to test your app on a hardware platform to make sure it works. You can't use approximation to give green signal to any device!

Out of curiosity what sort of problems did you face with the spica ? I have zero knowledge about android development but am curious to know what sort of issues come up when a hardware changes ?
 
Well, the reason behind fragmentation is, the devices made by different manufacturers uses all the different sort of hardware e.g. Various CPU, GPU etc. and even after launching tons of Android devices, manufacturers are not providing support, upgrade to all those devices. Even very big manufacturer companies like HTC left their Android devices without even thinking about software updates. This automatically fragmented android users into groups. There is a group of enormous amount of android users who are still using Froyo (2.2). Newly developed apps are developed by keeping in mind users on Gingerbread or above (2.3.x +). This group of people with older version is not really enjoying recent features and applications of Android.

Google is regularly releasing Sources, updates for Android but manufacturers are unable to maintain updates for each and every device. Maybe because they use so many different choices of hardware.

I think Google should limit Android to specific amount of hardware and release optimized sources for the respective. This will automatically help manufacturers to update firmwares for all their devices in no time.

I might be wrong but I think Android will end up by becoming Fragdroid.
 
Out of curiosity what sort of problems did you face with the spica ? I have zero knowledge about android development but am curious to know what sort of issues come up when a hardware changes ?

It was a long time back but if I remember, there was an issue with the authentication type used in the app. Also some functionalities (download, delete) were having issues.

Well, the reason behind fragmentation is, the devices made by different manufacturers uses all the different sort of hardware e.g. Various CPU, GPU etc. and even after launching tons of Android devices, manufacturers are not providing support, upgrade to all those devices. Even very big manufacturer companies like HTC left their Android devices without even thinking about software updates. This automatically fragmented android users into groups. There is a group of enormous amount of android users who are still using Froyo (2.2). Newly developed apps are developed by keeping in mind users on Gingerbread or above (2.3.x +). This group of people with older version is not really enjoying recent features and applications of Android.

Google is regularly releasing Sources, updates for Android but manufacturers are unable to maintain updates for each and every device. Maybe because they use so many different choices of hardware.

I think Google should limit Android to specific amount of hardware and release optimized sources for the respective. This will automatically help manufacturers to update firmwares for all their devices in no time.

I might be wrong but I think Android will end up by becoming Fragdroid.

This is the prime example why you need some kind of control over your platform in order to avoid buyers grievance. Manufacturers are basically being greedy by releasing a new device every other month and abandoning older ones which will fetch them no additional money. The open-source model works well with Linux distros as they are free and you don't need new hardware to run a new version. With android though, customers feel cheated when they have to wait months to get an update for their devices.

The other developer is right. You will have to test your app against all available devices to ensure 100% compatibility. HTC is going in the right direction with their One series and hopefully they limit the no. of new handsets released each year.
 
It was a long time back but if I remember, there was an issue with the authentication type used in the app. Also some functionalities (download, delete) were having issues.

This is the prime example why you need some kind of control over your platform in order to avoid buyers grievance. Manufacturers are basically being greedy by releasing a new device every other month and abandoning older ones which will fetch them no additional money. The open-source model works well with Linux distros as they are free and you don't need new hardware to run a new version. With android though, customers feel cheated when they have to wait months to get an update for their devices.

The other developer is right. You will have to test your app against all available devices to ensure 100% compatibility. HTC is going in the right direction with their One series and hopefully they limit the no. of new handsets released each year.

Exactly, the fragmentation can still be overcame but not only from Google's side but manufactures too. They also should take care of that. They should release limited amount of devices in specific time span and support existing devices for longer time. There are tons of Galaxy phones by Samsung
scared14.gif
But only few of them are getting PROPER updates in every region. Same with older HTC phones. I don't even want to take names of smaller companies who manufactures android devices and tablets, they don't even care about updates. It's almost like paying a Software engineer one time fee for recompiling Android sources as per hardware configuration and not caring about maintenance and upgrades.
 
The other developer is right. You will have to test your app against all available devices to ensure 100% compatibility. HTC is going in the right direction with their One series and hopefully they limit the no. of new handsets released each year.

Am no software expert, but then cant they have some universal API standards, I am sure Microsoft would not have tried all permutations and combinations of every peripheral and internal hardware before releasing a new version of Windows, but they almost run flawlessly out of the box. Am sure as the SOC's would not have a drastic difference between them, as they based on the ARM design. Screen resolution is a different ballgame...
 
Android phone manufacturers are currently confusing the masses with lots more choices than they might need (strictly my opinion). Moreover the release cycle has shortned so much that say there is a phone release few months back and someone plans to buy it, the person is struck with the dillema of whether i should wait for the next iteration or go with the previous one.

Even the hardware limits are being pushed when the basic user has no apparent use of it (again my opinion). All this at the cost of the dismal battery life.

Since when we all started to talk that "My phone gives me 19 Hours....my phone gives me 26 Hours". We even have apps for batter monitoring.
<


The battery was something we cared least because it was taken for granted that battery life is always good (thanks to nokia of gool 'ol times for that). But today battery life is something considered as priority and that varies greatly with custom ROMs.

Initially i liked playing with new ROMs on my blade and all but eventually got sick of it. I found myself wasting time more in ROM changes and all than actually using the phone. This has prompted me to think in the other direction where usability and user experience will matter more rather than Geebees of RAM and GPUs which i personally don't have much use of.
 
Am no software expert, but then cant they have some universal API standards, I am sure Microsoft would not have tried all permutations and combinations of every peripheral and internal hardware before releasing a new version of Windows, but they almost run flawlessly out of the box. Am sure as the SOC's would not have a drastic difference between them, as they based on the ARM design. Screen resolution is a different ballgame...

Windows developers now mainly support three platforms (XP, VIsta, 7) with varying degrees of hardware. A regular application (picture viewer, movie player etc.) needs modest resources and would run on decent PCs from 5 years ago. Resource hogging applications (video editors, IDE's etc.) and games require a lot more resources and they usually have minimum system requirements for optimal execution. Also, I fail to see what peripheral or hardware config would be so different from the readily available ones that can be easily tested for.

For android apps, devs work with multiple versions of the OS (1.5,1.6, 2.1, 2.2, 2.3, 4.0) and their various iterations in addition to honeycomb on multiple tablets. Also, the specs of handsets vary greatly and it can mean a world of difference when we are dealing with limited system resources. Imagine providing same experience on a quad core cpu and a single core one.
 
Why android can't be like Windows or Linux?

Both operating systems have many versions and still support various hardware devices and applications?

because of the similar reason games run better on consoles than on windows ,even a pc has similar hardware if not slightly better than consoles

Optimization is the word here ,
 
Well, PCs with different configurations run games with varying degree of eye candy.

Funny that you mentioned games, because I've observed that most developers who cry about android fragmentation are either game developers, iOS to android app porters, or both.
 
I think Google should limit Android to specific amount of hardware and release optimized sources for the respective. This will automatically help manufacturers to update firmwares for all their devices in no time.

I might be wrong but I think Android will end up by becoming Fragdroid.

There's lot money in it. A lot. With each new device they make more money !

Well, PCs with different configurations run games with varying degree of eye candy.

Really good observation there. Hope some dev here can clear this...

Initially i liked playing with new ROMs on my blade and all but eventually got sick of it. I found myself wasting time more in ROM changes and all than actually using the phone. This has prompted me to think in the other direction where usability and user experience will matter more rather than Geebees of RAM and GPUs which i personally don't have much use of.

Same here ! I really don't remember which version of CM7 I am using currently & I stopped it following the updates completely. I even bored with customizing. I use this Zeam launcher from months. Only thing I do is changing wallpapers
tongu23e.gif
Even live wallpapers are also not exciting me
indifferent14.gif
Though I wouldn't say I am unhappy with it.

Honestly, I am scared these things like may kill Android. I use iOS more than Android, but Android is a really good competitor to iOS. I don't want iOS to dominate.

I asked my bro, who is a Android dev & he kinda agrees with the article. Though I couldn't understood most of the stuff he said over phone, but he gave me a simple example. If you are a start up & want to create kickass apps, all you need is one 3GS, iPhone 4, iPhone 4S. But in Android ?
scared14.gif


Here is one good study about android's openness :

RkOMq.jpg
 
Well, PCs with different configurations run games with varying degree of eye candy.

That is when the end-user tinkers with various settings and after a bit of trial and error. Surely you cannot accept the same level of tinkering from a casual user who just wants to kill some time on the bus.

Funny that you mentioned games, because I've observed that most developers who cry about android fragmentation are either game developers, iOS to android app porters, or both.

I get it you don't think highly of games but you need to understand that they are the most profitable apps for devs. Just look at how much merch. money is brought in by "Angry birds". And I am sorry but you do realize iOS came before android and thus iOS to android porting makes perfect sense. After all, many apps/games get ported from windows to mac, consoles, media player and other platforms.
 
That is when the end-user tinkers with various settings and after a bit of trial and error. Surely you cannot accept the same level of tinkering from a casual user who just wants to kill some time on the bus.

I get it you don't think highly of games but you need to understand that they are the most profitable apps for devs. Just look at how much merch. money is brought in by "Angry birds". And I am sorry but you do realize iOS came before android and thus iOS to android porting makes perfect sense. After all, many apps/games get ported from windows to mac, consoles, media player and other platforms.

I do think highly of games because I know the work and efforts put into one game. I only mentioned them because most issues of device incompatibility, bugs etc. users and devs face are in this category. But then again, games are most popular apps.

Also I've heard that porting from iOS to android is very difficult and developing from scratch ensures an app is better optimized.
 
Status
Not open for further replies.