Even Android’s Volume Control Is Hopelessly Fragmented

We already know that between hundreds of different Android builds and handsets, Google’s smartphone OS is hopelessly fragmented, and requires immense expense and time on the part of developers to get even a simple app working reliably.

But the problem with Android — and why it’s such a bitch to develop for — goes deeper than just too many handsets and OS builds to support. Even developing a simple music app for Android is a nightmare due to Android fragmentation, because Google couldn’t even get volume control on Android right out of the box.

Evolver.fm’s Eliot Van Buskirk spoke to a developer behind a very popular but unnamed music app which is trying to come to Android. Speaking on the condition of anonymity (due to the fact that the app, despite these troubles, will eventually launch on Google Play), the developer explains why Google’s implementation of something as remedial as volume control is hopelessly broken, and leads to even more fragmentation of an already fragmented platform.

This is what is wrong with Android’s method of handling volume control, according to the dev:

1. Android OS provides just one API for volume control. The problem is, there is a need for at least two types of volume control: overall output volume and media/music volume. This means manufacturers have to implement their own way of controlling the media/music volume. Unfortunately, each manufacturer does this differently, and there’s no way of finding out how they did it until you test each individual model. To make matters worse, Samsung used an inefficient way to control the hardware and media volumes, and deliberately feeds some of the hardware output to the microphone input. This creates audio mayhem.

2. Android OS is shockingly inefficient in dealing with real-time audio. The operating system adds about a seven second delay, and the hardware adds a further five or six seconds, making the default delay 12-13 seconds overall. We have managed to reduce the real-time delay to around half a second (500ms) or less, which we believe is is the best achieved on Android to date. [Ed. note: the iPhone version doesn’t include perceptible delay.]

3. Hundreds of screen size and resolutions make it impossible to have a one-size-fits-all UI graphics set. [Ed. note: Obviously, this complaint isn’t exclusive to audio app developers, and we’ve heard it plenty of times before.]

Got that? Since Google hasn’t managed to have the foresight across four versions of Android to introduce two different APIs for volume control — one for media volume, one for overall output volume, — manufacturers have all introduced hundreds of their own crazy alternatives, which any developer making a media or music app must try to support.

And the lag! For real-time audio, the best developers can hope for is half a second delay, and that’s after a crazy and endless amount of optimizing. Unoptimized, Android will delay real-time audio by about thirteen seconds. I typed this paragraph in less. Compared to iOS, Evolver.fm commenter Adil Sherwani writes, and the difference is just shocking.

500ms is higher than the 100ms number I’d seen quoted last year but either way, 2 orders of magnitude higher than iOS which offers under 3ms hardware output latency. Add about 10ms touchscreen / accelerometer latency (very rough estimate, I don’t think anyone has published actual numbers for this), 5ms audio buffers (minimum size), and 1-2 processing time for your app, and you’re still able to stay within 20ms which seems to be the magic number for audio to feel realtime to humans.

Got that? In Android, real-time audio is actually at least half a second in the past. On iOS, though, it’s playing in the span of a blink.

Absolutely nutty. No wonder Android developers are so frustrated. And this is just one tiny example of Android fragmentation. When is Google going to get its act together?

Deals of the Day

This article is factually incorrect on many levels. It sounds like this developer, while experienced developing on the iphone in objective c, doesnt understand how Android works. You’re really telling me that theres a 13 second delay in sound that nobody has noticed until this magical developer managed to optimize it to only half a second? Really?

AndreGSNE

There are 2 volumes in Android, both in gingerbread and ICS. This guy is bullshitting. And yeah right, my Youtube video’s audio lags behind by 12-13 seconds. Again bullshitting.

Dude, I f***in hate how my stupid-ass galaxy nexus delays tracks on the music player. The iPhone plays everything nice and sequentially. Why can’t the GNex do that? As a music lover, I can’t stand to hear a pause in an album that was meant to be played without any delays. Ridiculous.

hurtle24

If the guy spoke
on condition of anonymity, why did you reveal his name as “Evolver.fm’s Eliot Van Buskirk” ?

James Jenkins

Ahhhh, the difference in perspective from your sister site! I for one keep my media low while keeping my ringtone high. It’s called choice Sheeple!

Speaking of hopeless… this blog sucks. You people are an embarrassment to Apple users everywhere.

Removing from RSS feed.

Andrew John

Speaking of hopeless… this blog sucks. You people are an embarrassment to Apple users everywhere.

Removing from RSS feed.

Ha ha ha ha. “You can’t handle the truth”!! I love how the fandroid fangirls get their panties in a twist every time anyone mentions the “F” word. Fragmentation. Suck it up princess.

Pseudonomian

Ha ha ha ha. “You can’t handle the truth”!! I love how the fandroid fangirls get their panties in a twist every time anyone mentions the “F” word. Fragmentation. Suck it up princess.

Ha. That’s the problem with fanboys like you: no critical thinking skills. I own a 2011 Pro, 2010 Air, iPod Touch 4th gen, and new iPad. The only main product I don’t have is an iPhone, though my wife has an iPhone 4. Not sure I’m getting the new iPhone; we’ll see if it’s worth the switch for me.

I love Apple products, but that doesn’t make this article accurate. I follow several Mac news blogs (like 9to5 Mac and OSX Daily) and CoM is by far the worst. Half the articles are advertisements and the other half are either bashing Android or reporting on some rumor.

You know what’s pathetic? People like you who think being attached to some tech company makes you cool. It doesn’t; it just makes you a sheep. And the fact that Apple makes awesome products doesn’t mean that everyone else sucks. Fragmentation is an issue for Android, but it’s not nearly as bad as Apple fanboys like you want to believe, especially if you have a high end Android phone. And Apple products have their own issues as well, including for devs! Overall, though, I’m leaning more and more toward the Apple ecosystem because it really does “just work”… most of the time. But I will never suck a tech company’s **** like you.

This article is factually incorrect on many levels. It sounds like this developer, while experienced developing on the iphone in objective c, doesnt understand how Android works. You’re really telling me that theres a 13 second delay in sound that nobody has noticed until this magical developer managed to optimize it to only half a second? Really?

Wow, I can’t beleive ther are people who clicked Disagree on you and @AndreGSNE even though you are absolutely right. I love iOS and I will claim it’s superior to Android any day of the week, but that doesn’t change the fact that it takes one look in the sound options on an Android device to see that this article is complete BS, ICS has a Ringer, Media and Alarm volume and I’m sure Gingerbread had at least the Ringer and Media ones.

I wish I could figure out what makes people pick a platform and then sit and blindly other platforms and the people who picked them, it’s worse than football team fans!

AndreGSNE

Seriously, i think the problem with Apple fanboys is that either 1, they have not yet tried an Android device and got roped in by Apple’s marketing and fancy schmancy designs, or 2, they had used an Android device with unsatisfying hardware. Android’s growth is already at an exponential rate and i do think now is the time to convert. Unless you are a sheep i guess.

pimmhogeling

Found this article using a search engine, and I would just like to add a note for the next person who does.

Android is fragmented ? which is a blessing as well as a curse ? and there have been several problems with sound over the years. But this article is almost entirely incorrect. To name the most obvious thing, Android does not have a single audio stream for which the volume can be controlled. Nor does it have two: it has seven.

Don’t waste your time here. Just history.back(); and pick another result in Google.