x PhoneArena is hiring! Reviewer in the USA

"Android can never be as smooth as iOS" myth busted

Posted: , by Victor H.

Tags :

Two months ago, a Google intern kicked off a discussion about why Android is laggy: a sore point in the hearts of Android fans, and gave what seemed like a pretty legitimate explanation to non-developers. It spurred a huge discussion not only on the Internet, but right here with arguments being brought by both sides. 

In a nutshell, the former Google intern Andrew Munn said that UI rendering is happening as a main thread in Android while in iOS it’s in a dedicated thread given a real-time priority and that is why many find Android laggy. Moreover, Munn suggested that that’s an inherent flaw of the way Android is built. That’s why Android was to remain somewhat laggy despite dual and quad-core chips roaring under the hood, and actually whatever hardware is thrown in an Android device. We definitely advise you to check out Munn's first post to get all the details he touches on.

However in the recent months many people who really are experts in threaded programming in particular and Android at large have chimed in with comments saying Munn’s statement is uninformed at best and misleading at worst and his conclusions are simply false. We have to admit, that the technicality of Munn’s first post was very convincing to us as well, especially given the fact that Android and apps built for it are indeed often laggy.

The experts have a different opinion, though, and it’s backed by more experience and facts. So here’s the other side: Jay Freeman who made Cydia says that Munn’s post is “simply wrong,” Bob Lee, CTO of Square and former Android core library lead described it as “fallacies” and Matthew Chaboud, senior engineer at Avid brusquely concluded: “uninformed crap.”

Before we quote the developers, let us first include their own disclaimer: “While I'd love to explain why Android is laggy, while iOS, WP7 etc are fluid, I can't. I cannot claim that I know how a lot of little issues managed to cascade to an inferior experience for many of us.”

So with no further ado, here’s the details on all the fallacies of Munn’s initial post:

Matthew Chaboud, Senior Software Engineer at Avid:
Unlike a number of the in-awe comments here, mine will come with a different tone:

Your post is uninformed crap.

I'm a threading guy. I've spent more than a decade eating, breathing, and sleeping optimization of threaded interactive user applications. I'm not really a phone guy, but I've dinked around with iOS and Android. Both provide facilities for background threaded render-ahead and non-allocating in-place recycling of resources. I can say, with absolute confidence, that you're suffering heavily from the Dunning-Kruger effect. You know far less about threading and rendering architectures (or, clearly, application architectures) than you think you do, and the assertion that "Android UI will never be completely smooth..." ranks as one of the most tragically idiotic technical assessments that I've seen all month (and I see some real winners).

This suggests that iOS is A) perfectly smooth and B) that way because of threading lock out. It also suggests that software rendering can't manage 60fps, or that threads at normal priority can't be smooth. I can't think of any of my iOS devices (iPhone and iPod Touch on my desk and in my bag) that is always smooth. Smoother? Rendered on a background thread to quell transient interruptions when using CoreAnimation? Sure. Perfect? Oh no. I can easily write you an iOS app that is a stuttering mess.

I've written a sub-pixel accurate software-only compositing engine that could peg 1080/60p using normal priority threads (on x86) on a system with higher priority threads running other tasks, including realtime threads. I am entirely confident that this will become possible on mobile platforms without GPU assistance (though why not use the GPU when it's there?).

I'd reply, point by point, to the big-bucket-of-wrong that you've posted here, but it's just too much effort. That you leave this post up and carry such an air of authority (even after the disclaimer) is mind-boggling. That's just one more name on the do-not-hire-this-guy list.

Bob Lee, CTO of Square and former Android core library lead:
Some fallacies related to Android vs. iOS UI performance made the rounds recently, inflicting undue damage to Android's reputation. It all started with a misinformed Google+ update written by former Android testing intern Andrew Munn.
Time reporter Matt Peckham echoed Andrew's misconceptions the following day, further spreading the FUD about Android. Toward the end of his article, Matt noted:

I’m not an Android or iOS software engineer, so all I can say in response to any of this is that, assuming Munn’s correctly articulated the way rendering takes places on Android and iOS devices, it makes sense (but then so does the idea that Lee Harvey Oswald had help, at least to some people).

Peckham makes no mention of trying to corroborate Munn's claims with a more experienced, knowledgeable engineer, like Romain or Dianne from the Android team, nor does he reference the corrections made by iOS experts in the comments on Munn's post. A more qualified engineer would support their theories with evidence like code, specifications, and performance test results, not Reddit and Hacker News comments as Munn did.

I don't claim to have all the answers, but I can tell you that implementing fluid interfaces on both iOS and Android is time consuming and difficult. The challenges are an order of magnitude more complex than Munn suggests. I haven't had an opportunity to try Ice Cream Sandwich yet, so I can't tell you firsthand how it compares to the iPhone. However, Jason Kincaid, quoted by Munn, described ICS as quite smooth and noted that both Android and iOS stutter occasionally.

Jay Freeman's, iOS developer and developer of Cydia:
"It’s because on iOS all UI rendering occurs in a dedicated UI thread with real-time priority. On the other hand, Android follows the traditional PC model of rendering occurring on the main thread with normal priority." 

AFAIK this is simply wrong: the events that are later described as blocking rendering are coming in on the main thread, not some special "dedicated" one. The reason things block is because of the way the event loop on that thread is managed (and in fact is directly caused by all of that activity operating on the main thread, which we even often call the "UI thread"), and has nothing to do with threading, and certainly has nothing to do with "real-time priority".

"On iOS when an app is installing from the app store and you put your finger on the screen, the installation instantly pauses until all rendering is finished." 

This is certainly not true. The update of the display for the installation progress might (...might) stop, as that's happening in the UI (aka, "main") thread of SpringBoard (and the event loop management might ignore incoming events that are not related to the touch event until after the gesture completes), but the installation itself is being managed by a background daemon (installd) and will not stop because someone is touching the screen. The operating system is /not/ doing something hilariously insane here, throwing out all computation on the device because someone is accidentally touching it.

Brent Royal-Gordon, iOS developer:
The iOS description here isn't quite accurate. There are several things at work:

1. Compositing and previously set-up animations—all the stuff that involves the Core Animation rendering layer tree—do indeed happen on a background thread.

2. Drawing new content into Core Animation layers and setting up their animations happens on the main thread. This is the same thread that user interface actions occur on.

3. In naively written code, all developer-written code would occur on the main thread. However, Apple provides very easy APIs (Grand Central Dispatch and NSOperation) to move things into system-managed background threads. In iOS 5, you can even declare that a Core Data (object-relational database) context cannot be used directly on the main thread.

All that stuff you noticed—the way images aren't drawn into lists while you're scrolling, the way WebKit rendering stops when the system is tracking a touch—isn't inherently built-in by a mechanism that pauses the world when a finger is on the screen.* It's deliberate behavior painstakingly implemented by the developer of each individual app.

This is not a technical difference; it's a cultural difference. Good iOS developers don't ship software until it runs at something near 60 fps while scrolling and tracks touches almost perfectly; good Android developers do.

All of this argues with Munn's arguments, but not with the existence of the problem itself. And it exists, at least if you ask the majority of Android users. Have you encountered any additional arguments explaining why? Don't hesitate to share your them along with your opinions in the comments below.

source: Andrew Munn via TheVerge

  • Options

posted on 25 Jan 2012, 05:20 27

1. Birds (Posts: 1164; Member since: 21 Nov 2011)


posted on 25 Jan 2012, 05:39 20

3. protozeloz (Posts: 5396; Member since: 16 Sep 2010)

Duh. And mostly from people on the other side, they had to prove him wrong now I can continue saying that Android will keep growing in terms of look quality and performance

posted on 25 Jan 2012, 11:45 7

39. JonGarrett (Posts: 29; Member since: 06 Aug 2011)

you will NEVER find this kind of story on any apple fan site. they love to spread lies and misinformation about Android when 9 times out of 10, they've never used an Android device save for a broken piece of equipemnt you typically find at Best Buy.

posted on 25 Jan 2012, 07:50 10

13. tahnik (Posts: 188; Member since: 17 Jul 2011)

Ya...it's right...Our windows sometimes lags...Don't they?
iOS is very good i have to admit though...
But Android gave us the freedom....It gave us the capability to customize the phone as we want...
In iOS you are only able to do what your OS choose you to do...But in android you choose what your OS will do....:)

posted on 25 Jan 2012, 08:41 6

22. asimo (Posts: 41; Member since: 05 Jan 2012)

yeah on ios you cannot not ask too much to the system, so it *never* lags... In fact it's your BRAIN that slows down, not ios that's smooth!

(this one was easy sorry)
---------------------------->[] (i'm out)

posted on 25 Jan 2012, 14:02

45. kgdadon (Posts: 1; Member since: 25 Jan 2012)

YOU my friend hit it on the head with a sledge HAMMER !!! good post!

posted on 31 Dec 2012, 16:35

64. steve19800 (Posts: 1; Member since: 16 Dec 2012)

That's probably the reason why Android prones to lag and less smooth. There are too many 'personality' to test.

posted on 25 Jan 2012, 08:50 3

23. ZEUS.the.thunder.god (unregistered)

yeah thanks a lot PA. appreciate it.

posted on 25 Jan 2012, 05:36 14

2. medalaster01 (Posts: 42; Member since: 22 Nov 2011)

"It’s because on iOS all UI rendering occurs in a dedicated UI thread with real-time priority. On the other hand, Android follows the traditional PC model of rendering occurring on the main thread with normal priority."

said by jay freeman's which means android acts like windows on desktop and ios a more mobile oriented software.

one more reason to stay Android.

posted on 25 Jan 2012, 05:43 3

4. protozeloz (Posts: 5396; Member since: 16 Sep 2010)

Eh.... not exactly

posted on 25 Jan 2012, 07:51 5

14. rcrider4 (Posts: 118; Member since: 14 Nov 2011)

That was the quote from the intern that Jay Freeman was refuting. It is not his own statement. Pay closer attention and you would have seen the quotes around that statement.

posted on 25 Jan 2012, 08:22 1

17. kylie (Posts: 9; Member since: 22 Jan 2012)

so you dont want mobile os in mobile,you want non-mobile os on your mobile

posted on 25 Jan 2012, 12:55 5

43. SleepingOz (unregistered)

We want SMARTER OS on our SMARTphones!

posted on 26 Jan 2012, 08:36

59. kylie (Posts: 9; Member since: 22 Jan 2012)

then why do you make the wrong choice. Buy a windows phone or an iphone.

posted on 27 Jan 2012, 04:50

62. thebikerboi2 (Posts: 144; Member since: 01 Apr 2011)

tht depends, personaly i dont think smartphones are ready to handle a desktop style OS, simply not powerful enough although they are getting more powerful. plus you will never escape the fact that, the OS will always be orintated around the device.

posted on 25 Jan 2012, 05:44 9

5. JSern (Posts: 282; Member since: 22 May 2011)

Nope. WP > iOS > Android in smoothness.

posted on 25 Jan 2012, 07:37 3

12. andro. (Posts: 1999; Member since: 16 Sep 2011)

Windows is indeed the smoothest but the menu ui block styling is akin to that of a the commadore 64 era and as so the processors don't need to break a sweat

posted on 25 Jan 2012, 08:07 3

16. JSern (Posts: 282; Member since: 22 May 2011)

Yup, that's one point

posted on 25 Jan 2012, 21:13 2

51. BattleBrat (Posts: 1476; Member since: 26 Oct 2011)

Yes, you are right, WP is the smoothest I had the TITAN and a 4S side by side, the Titan is the smoothest, I own a RAZR, and it is pretty smooth for Android, I would like to see what my RAZR will do on ICS....

posted on 25 Jan 2012, 06:16 6

7. GPFboyJS (Posts: 3; Member since: 27 Apr 2011)

Sorry to say but both Android and iOS lag in some areas. I have friends with the latest iPhone 4s and myself running the latest Android phone.

There are areas that the Android is substantially faster in rendering and others that the iOS device is faster.

Ultimately it is the job of the App Developer to make the code of their application as efficient and optimized as possible. The OS is just the canvas.

posted on 25 Jan 2012, 06:20 6

8. nwright94 (unregistered)

Maybe other people have good luck with their Android handsets, but I haven't owned a smooth Android handset yet. My old Atrix on dual core being the laggiest. I understand thats probably because it was on froyo before I returned it for a windows phone. Now as for iPhone, mine probably lagged just as much as my old backflip. It was rooted so it wasn't the laggiest, but anyone whose owned a backflip understands what I mean. Now if you want smooth, get a windows phone.

posted on 25 Jan 2012, 06:42 4

9. c.hack (Posts: 613; Member since: 09 Dec 2009)

I was going to respond on my Android tablet, but the keyboard was too laggy to type even a sentence and then it locked up. Yeah, Android's great - if you like to pay to debug Google's beta software. I use both Apple (original iPad and 4s) and Android (DX2 and A500 both dual core). Android cannot compete in responsiveness and smoothness with Apple. Even the dual core A500 is a laggy embarrassment compared to the first gen iPad.

posted on 25 Jan 2012, 08:59 5

24. iamcc (Posts: 1319; Member since: 07 Oct 2011)

You have the worst luck with stuff dude... I use my GT10.1 to post on PhoneArena several times a day without issue...

posted on 25 Jan 2012, 10:15 3

31. Sniggly (Posts: 7305; Member since: 05 Dec 2009)

Part of your problem is the DROID X2. Sure, it's dual core, but it also only has 512 megs of RAM. My Atrix, however, is pretty damn smooth, or at least it is when I don't have fifteen processes running in the background. Time to uninstall those Glu games!

posted on 25 Jan 2012, 12:24 5

41. ZayZay (Posts: 571; Member since: 26 Feb 2011)

Do you sound this stupid in person too, or is it just on the internet?

If you feel and hate android and it's laggyness so much, why do you have an android tab?

Is your beloved Apple to expensive for you?

You're funny because you are always saying "Well my friend has an android and it..." or "Well I had an android and it had this problem...?

You are the replica of the annoying apple fanboy the commercials display.
Good luck in life if you act like this all the time.

posted on 25 Jan 2012, 06:51 12

10. redmd (Posts: 1279; Member since: 26 Oct 2011)

I would rather have this "lag" than not having Bluetooth file transfer or microsd slot or USB mass storage.

posted on 25 Jan 2012, 07:23 4

11. JSern (Posts: 282; Member since: 22 May 2011)

Android users. U MAD?

posted on 25 Jan 2012, 10:34 1

32. protozeloz (Posts: 5396; Member since: 16 Sep 2010)

not at all android may be not as smooth as iOS but this shows it could change android keeps getting better and better and anyone with 4.0 can tell you that

posted on 25 Jan 2012, 11:13 1

36. blazee (Posts: 412; Member since: 02 Jan 2012)

Nope. R U?

posted on 25 Jan 2012, 08:03 2

15. zaryab_hussain77 (Posts: 104; Member since: 30 Jun 2011)

Ios is f**king simple n boring

* Some comments have been hidden, because they don't meet the discussions rules.

Want to comment? Please login or register.

Latest stories