We may be die-hard Android fans here at Android Community, but we’ve all at least given iOS a chance to shine its light. One of its best features is handling UI actions perfectly, thus leaving the user willing to wait for longer page loads. Over on Google+, Google engineering intern Andrew Munn explained to us precisely why Android OS will never be as fluid as iOS or Windows Phone 7 devices.

What it boils down to is that Android OS renders all graphics continuously – and on the same priority. What differs in iOS and WP7 is that graphics rendering is queued for when it’s needed. This is why when we open many applications at once within Android, we see the device start to slow down as it tries to keep up. In iOS, if an application isn’t done loading and you start touching your screen, it will only finish loading when you release your finger. This also helps keep the device from working to hard on multiple tasks – which eventually drains your battery.

Put in Munn’s words:

It’s not GC pauses. It’s not because Android runs bytecode and iOS runs native code. 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.

Personally, I love the way Android OS allows loading simultaneously to UI interaction. I’m pretty good at gauging the device’s capabilities to the point where I’ll know when the system may start to slow down. Also, hardware just keeps getting better and better. There will be a time when Android’s “sluggish threshold” is much harder to reach than currently.

[via SlashGear]


  1. Though I’m an Android fan, I find the queued rendering of iOS a better idea since it consumes less battery and doesn’t require as much CPU power. :/

  2. Although I am an Android fan, I also think that iOS graghic rending “style” is better
    not only save battery but also make the animations more sexy

  3. “Also, hardware just keeps getting better and better.”

    This is a very lazy way to approach UI design. You can’t just depend on ‘better hardware’. Without proper, efficient software that can actually take advantage of hardware, you’re still going to be ‘slow’. look at the mess that is the blackberry playbook, a tablet with great hardware but horrible sluggish performance due to software crap like adobe air.

    • Funnily enough the good design (software wise) is Androids method. Think of a video game, what matters more? The graphics or the calculation? The calculations every time matter more, rather than preferring graphics over logic it prefers logic over graphics, so the framerate may drop but the game itself doesn’t slow down.

      Thats the same approach Android takes. So if something logic heavy causes a UI slowdown you can be guaranteed that atleast the logic will happen as quick as possible, leading to less slowdown in apps but married with the possibility of graphics stutter.

    • And… Since all manufacturers get better hardware Ios and Wp will still be faster. Unless, Google attempts to use the newest and best first, which they sorta do with their Nexus series. In short: Android will always be a bit slower, but thats ok.

  4. As long as ICS offers a visible improvement in speed over Gingerbread/Honeycomb, I’ll be satisfied. Looking to speed up my underperforming HTC Sensation, and I’m also hoping the TF Prime will be very smooth with ICS as I’m possibly getting one.

  5. So Android is slow because its interaction framework is designed poorly and they don’t want to fix it. Thanks for the explanation, Google.

    • You’re an idiot. It’s designed differently and it’s not broken it just works in a different way. Don’t just post ignorant comments just because you don’t understand or like whats going on.

      • Yeah there is. It looks like it’s handled a lot better in ics though. Maybe because of the extra things rendered by the gpu.

      • Not like my iPhone 4S didn’t lag to hell. My Android phone has less lag than my iPhone 4Shit. 3 days too long with that piece of crap 

      • I’m not an idiot, I’m not just not an apologist. I’m an Android app developer (and I have been for years) so I have a pretty good understanding of how the system works. 

        There are virtually no perceivable benefits to the approach that Android is taking over the one that iOS and Windows Phone use. Failing to give higher priority to the UI thread means that mathematical calculations might complete faster, but you’re talking about a couple hundredths of a second at best. It’s trivial and nobody will notice the benefit. Meanwhile, there’s an extremely noticeable drop in UI performance that’s very apparent to every person that uses it. This design shows that Android’s engineers had a poor sense of priorities. 

        When you have limited resources you need to use them strategically in ways that will give you the biggest return. Actual Performance isn’t nearly as important as Perceived Performance. Making it *feel* fast should always be a higher priority than making it actually go faster. This is common knowledge among software developers. If you think you disagree with that it’s because you don’t understand basic software usability principles.

  6. On my HTC ONE M8, my phone is one of the most responsive fluid andprid phones I have tried or owned. a few tweeks and it runs just as fluid as iPhone. Go into developer options, (if you don’t have developer options go to settings, about, and click on “build #” 7 times”. in developer options with the HTC one m8 you have the ability to maximize your cpu performance, which I don’t do because it will drain the battery, but you have that option. I go down and click ADVANCED at the bottom, and on the next page, I check ” FORCE GPU RENDERING”, and “FORCE 4X’s MSAA” and I also change my animations options from (1) down to (.5), this will speed your phone up incredibly, and also make your phone much smoother and more fluid ! I almost feel like my phone gets ahead of me now, especially when typing. all android phones have these options, although the HTC one series phones have more customizations within the developer options. I have tried a lot of androids ! Samsung s5 and s6, the LG G3 and G4, but the HTC one m8 and m9 are the smoothest by far. The Samsung s5 can be respsonsive somtiems but over all is far from smooth. The galaxy s6 is much faster and more responsive then the s5 But still not as fluid as the htc one m8 and m9 especially with the developer options tweeked. You can also limit your background tasks in the developer options. I limit my background applications to 2 or 3 to prevent a bunch of things running in the background and slowing my phone down and draining my battery. deleting pictures and things from your phone will not increase speed for your phone ! The only reason deleting things may help the phones responsiveness and make it faster would be deleting applications that run in the background because this would take some of the load off the phone and free up RAM. But in developer options, By checking (Force gpu rendering) the gpu will handle most of the graphics rather then the cpu, which takes a load off of the cpu so it doesn’t have to handle everything as well as the graphics. (Force 4x’s msaa) is great for gamers, it smooths out graphics and will make images look much better ! By changing your animations options from (1) to (.5) will decreae the animations time and your phone won’t spend as much time on the animations and your phone will run much faster. Some people disable the animations completely, but when I did this my phone wouldn’t do some things it usually did, so I kept them on and just lowered them. I have compared my HTC ONE M8, to both the iPhone 5s and the iPhone 6 and my phone is just as smooth and fluid. A lot of benchmark tests people watch online where the iPhone out performs other phoens, this is because they are doing single tasks one at a time, but even then the HTC ONE M8 was right behind it by 1 second and the Samsung was 22 seconds behind. But in a benchmark where they do multi tasking the iPhone always comes in last.

  7. Any android can be made much more fluid and responsive. But I haven’t seen an android that has the performance of the HTC one series phones. Even Steve jobs loved the HTC ONE M8 so much they designed the iPhone 6 after it, and Steve jobs said the HTC ONE M8 was the first android he felt compared to the iPhone. But by going to developer options and can mak your HTC ONE series phone run just about as fluid as an iphone ! So you will have the fluid and responsiveness of the iPhone by the freedom and capabilties of android !! In developer options just check (FORCE GPU RENDERING), (FORCE 4X’s MSAA) , and change all animation settings or options from (1) down to (.5). Do not disable the animations completely or you will find your phone acts differently. I sometimes limit my background applications to 2 or 3 to prevent a bunch of things running in the background, but this isn’t necessary. Also if you have a HTC ONE series phone, you have the option to (maximize cpu peformance) I wouldn’t do this unless you are at home or able to charge your phone because it will drain your battery a little quicker.

  8. This doesn’t make one phone better then the other !! It basically comes down to, do you want a phone that runs smoothly and fluid but can only perform well with single tasks, or do you want a phone that is well rounded and can multi task great, and doesn’t have as many limitations ?? You’ll find ups and down on both android and iPhone. BUT ANYONE WHO ACTUALLY BELIEVES THIS ARTICLE, IS BEING MISLEAD ! THIS ARTICLE IS FAR FROM ACCURATE AND ISNT TRUE. THIS GUY WAS FIRED FOR WRITING THIS AND BOTH TECHIES FROM GOOGLE, APPLE, AND OTHER COMPANIES HAVE WROTE REPSONSES TO THIS FALSE CLAIM !! HE MAKES IT ALL OUT TO BE MUCH MORE SIMPLE THEN WHAT IT IS !!

  9. funny thing is both of these now are not true anymore, Project Butter makes the UI render in a separate thread with tripple buffering which syncs screen refresh rate with cpu and gpu, since android jelly bean. And with ART replacing the old Dalvik, now the bytecode is interpreted only once at install time instead of JIT/runtime/cache, and only native code is installed on the device, ready to be executed. the reason they did not do this before was solely because of limited storage space back in the time


Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.