Home

Share this Story

Googler Sets the Record Straight on Android’s Hardware Acceleration

You can tell that Google employees absolutely love what they do.  They get to geek out on tech goodness all day and make something that millions of people use for their personal and business lives everyday.  The newest Google employee to come forward and explain some more Android technically-directed information on Google+ is Dianne Hackborn.

There seems to be some “misinformation” out in the world about Android’s hardware/graphics that Dianne wants to squash immediately. 

I get tired of seeing so much misinformation posted and repeated all over the place about how graphics rendering works on Android. Here is some truth:

• Android has always used some hardware accelerated drawing. Since before 1.0 all window compositing to the display has been done with hardware.

• This means that many of the animations you see have always been hardware accelerated: menus being shown, sliding the notification shade, transitions between activities, pop-ups and dialogs showing and hiding, etc.

Android did historically use software to render the contents of each window. For example in a UI likehttp://www.simplemobilereview.com/wp-content/uploads/2010/12/2-home-menu.png there are four windows: the status bar, the wallpaper, the launcher on top of the wallpaper, and the menu. If one of the windows updates its contents, such as highlighting a menu item, then (prior to 3.0) software is used to draw the new contents of that window; however none of the other windows are redrawn at all, and the re-composition of the windows is done in hardware. Likewise, any movement of the windows such as the menu going up and down is all hardware rendering.

If you love talking tech (and who better to do it with than a Google employee working on Android, then go ahead and check out her full write-up here.

Via: Google+

  • Astro Turfer

    Dianne Hackborn’s article doesn’t acknowledge the Android UI ‘lag’ problem, and doesn’t offer a solution. In short, the graphics architecture in Android was original something very simple designed to compete with Blackberry. Then the iPhone appeared, took everyone by storm, Google rushed to market with a graphics system that simply wasn’t designed for the touch/swipe metaphor.

    Google will not fix it, because they’re not making much money from Android and it’s a heeeee-uge job. They would basically have to re-design the graphics/rendering architecture, and this would mean that all but the most simple Android apps would have to be re-built/large chunks re-written.

    See here: https://plus.google.com/100838276097451809262/posts/VDkV9XaJRGS

    The Galaxy S2 does a pretty good job at making things ‘smoother’, but it still doesn’t compare to the iDevices (even 3 year old iDevices). As for the Galaxy Nexus with ICS – nothing short of a joke. Some of the animations are definitely smoother, and scrolling contacts is smooth, but see what happens when you scroll an SMS thread with 30 or so messages. Also try the browser on a desktop page like metro.co.uk, then try the same with an iPhone (buttery smooth). I tried to create a video to demonstrate this, but the frame-rate wasn’t high enough to really show how bad the problem is:

    http://www.youtube.com/watch?v=KLAizRc2Iuc

    I own a Galaxy S2, Galaxy Nexus, and iPhone 4s. I will be selling the Galaxy Nexus for about half price as it’s a very annoying handset. The user experience makes me want to blend it. The Galaxy S2 is fantastic for media, and the iPhone 4s is just a good handset for calls, GPS, browsing, apps etc.

    For those who want to know if Google are going to ‘fix’ the issue, please watch this:

    http://www.youtube.com/watch?v=v9S5EO7CLjo#t=2m00s

    In short, they’re suggesting that newer, faster, better CPUs with more cores is the solution. So, just be patient, wait for 8 or 16 or 64 cores to become the norm, then enjoy your inefficient Android handset!

    • Anonymous

      What was I supposed to be seeing in that video?  I saw a little bit of extra lag when you were furiously scrolling back and forth, big whoop.  You do that often just to prove a point?  Browser (and apps in general) performance has a lot to do with the implementation chosen as the GS2 shows.  Opera Mobile is just as smooth or smoother than the iPhone browser for instance.  I can’t stand the fast deceleration in the iOS browser that requires a ton of swiping to get to the top or bottom of a web page.

      The simple fact of the matter is that Android can be every bit as fast as iOS if implemented and optimized correctly but it’s never going to be as smooth as the iPhone across the board on every Android device because of the open source nature of the OS and the fact that it runs across a multitude of phones and different hardware unlike iOS.  Application developers sometimes have to make sacrifices in order to support all or many devices.  One app may run smooth as butter on one device and hardware set while being slow on another.

      It’s high time iPhone lovers come to this understanding. Yeah, there are definite advantages to Apple’s closed system but there are also many disadvantages so choose based on your preferences because the situation on either platform isn’t going to change, utopia isn’t a possibility. It sounds to me like you simply have ridiculously high standards, which is especially interesting when I see other people who moved from an iPhone to a GS2 say it’s every bit as fast if not faster.

      • Scott Deagan

        Please, P_McClane! The issue is not one of ‘open vs. closed’ or the fanboys/girls!! The issue is that the Android graphics rendering architecture. Users (consumers) don’t care what the ‘reasons’ are. Consumers care about parting with £520, only to find a UI that is clunky and hence the user experience is crap.

        200 million Android users deserve better!!!

        • Anonymous

          I don’t think it is, if you do then you best get an iPhone.

  • Anonymous

    phlpn.es/829r8s

  • Anonymous

    @CORYK333:disqus ..,..

  • Anonymous

    linkhide.com.ar/47632

  • Anonymous

    linkhide.com.ar/47632

  • http://twitter.com/_elemenopee_ Kavin Nguyen

    Her last name is hackborn? That is too sick.

    • David

      Yes. And “She Hackborn” hacks the geekest mobile operating system in the world. ¬¬

      Talk about an easy cliche.

  • babadush

    She’s not really helping her case. If it’s always had it why we’re past versions choppy?

    • Anonymous

      Because of varying hardware between phones and the fact that Android as it comes by default will never be optimized for every hardware configuration.  It’s up to the OEMs making the hardware to optimize the software for their device which many don’t seem to do or simply do half assed.  There are many factors to take into account, that’s why Microsoft has specific hardware requirements and thus why the iphone runs smooth, because the software is highly optimized for only a couple devices (the current and the prior generation).  Multitasking, ram speed and amounts, memory bandwidth, processor and GPU performance, etc. all play a role in determining how to optimize software for best performance.

      • Dominick DeVito

        That’s so completely and entirely false. Are you done talking out of your ass?

        iOS (and WinPhone7 for that matter) are designed differently. Read the G+ post, it explains it all. Or just buy a dev book and educate yourself before running your dumbass big mouth all over the place. Android was never designed to be optimized by OEMs. Any OEM customized “optimization” that you’re talking about is simply done on the skins that sit on top of Android – they don’t touch the source code to achieve this.

        • Anonymous

          You’re just too clueless to understand how the process works.  The GS2’s Android browser, for example, has been tweaked by Samsung to support tile based rendering and add in effects like the scroll bounce back as mentioned by Dianne and there are other optimizations they have made that make use of the hardware and extra memory bandwidth.  I read Dianne’s and Andrew’s posts, did you?  If you did, it doesn’t appear you understood anything.  BTW, Andrew specifically stated in the beginning that it was his understanding and he could be incorrect, which he is on a few points.  Now go read again instead of making baseless insults with no substance you sad child.

          Or just go entertain yourself and stare at a screen’s pixels, that is why you’re mad afterall isn’t it little troll.

          • Dominick DeVito

            “Optimization” by OEMs is not what this post is about. Those add-on changes are just cover-ups to the real problem. Yes, I applaud them for them, but Android wasn’t designed around offloading UI workload to the GPU until 3.X and higher. And even in ICS it still isn’t optimized for a full smooth UI experience. But it has its ups and downs.

            Yes, you can optimize specific apps and functionality ON TOP OF AN OS, but the underlying UI rendering has nothing to do with that. Hence if the OS was, then there wouldn’t be a need for OEM “optimization”.

            And BTW – you still never said what Andrew Munn was wrong about. Still waiting on that…

          • Anonymous

            They are not “cover-ups” by any stretch of the imagination, they are merely design decisions. Again, it appears as though you didn’t read or understand what Dianne said. The Android team opted on a different rendering technique in the browser to display the entire web page at the expense of some performance, Samsung opted to go the Apple route on their GS2. It’s as simple as that. The hardware simply isn’t powerful enough yet to render graphics rich web pages super smooth without using special tricks that make other sacrifices.

            Android has been capable of using the GPU to render animations since around version 1.6, in fact. Window rendering (including scrolling) has been software rendered until HC which allowed for it but didn’t require it.

            I’m not going to explain everything for you, go read some of the comments in those posts from people who know what they’re talking about.

          • Dominick DeVito

            And yes, I agree with you completely, SAMSUNG has done a great job. Too bad other OEMs haven’t.

      • Anonymous

        AKA: Why I hope that ICS is the most buttery smooth on the Galaxy Nexus because it was built for ICS from day 1.

  • Anonymous

    That lady knows what she’s talking about. I feel like she was born to hack.

    Edit: Damn….. Too late on that one.

  • Jamdev12

    More like they opened a can of worms. I love Android and its features and I gives me more choices than any of the other contenders even with their updated software (wp7.x and iOS5), but this is something that has given Android as a platform a lot of issues. Androids greatest strength is its able to run on everything and with that in mind it is also its greatest weakness. Supporting multiple hardware configurations is a hard job to do. It took Microsoft a lot of years to get gpu acceleration in windows ui. I feel Android is going through this dilemma and until great drivers are developed by all the manufacturers of these cpus and gpus we will still have these issues. As geeks I like this post, but as a regular consumer I want a smooth experience which has been lacking in Android. I’ll be getting a GNex and see if ICS has really made the difference.

    • Anonymous

      Well said regarding the multitasking aspect that is being done in the background. Definitely a gift & a curse but it’s growing pains that are slowly improving & I have no problem going along for the ride as they smooth it out.

    • Thickey85

      There definitely seems to be some differences with ics .I put an ics rom onto my incredible that I’m not using and connected to my thunderbolt over wifi tether, and pages are loading almost twice as fast as they are on my tbolt.

    • Anonymous

      Then again, would you ever expect a regular consumer to read that entire post.

  • Anonymous

    There’s been a follow-up to that post, that goes into more technical detail as to why things are laggy even though things are hardware accelerated. 

    https://plus.google.com/100838276097451809262/posts/VDkV9XaJRGS

    • Anonymous

      This is a great post and explains why Android lags really well and clearly.

    • http://pulse.yahoo.com/_4NH3SS5BT44HRIX3XCOAB7UXUI Sam

      Excellent post.

    • Dominick DeVito

      Great read, thanks.

    • Anonymous

      Don’t believe everything you read; Andrew, while correct on a few things, is incorrect on other points.

      • Dominick DeVito

        And they are???? 

        Put up or shut up McClane. I’m tired of hearing you talk out of your ass.

      • Astro Turfer

        I’m sorry J_McClane, but I’m with Dominick DeVito. What exactly is he wrong about? I think he’s pretty much hit the nail on the head.

        If I were Dr. Page or Dr. Brin, I would fire the entire graphics team from Google, give Andrew Munn free reign to put together a new team, put a complete freeze on development of new Android features, and start the process of fixing that which is clearly broken.

        It will cost Google/Android a lot more in the long run if they just sit back hoping faster and more CPU cores is the solution. People are now aware of the issue, and “Android” is now synonymous with “lag”.

        • Anonymous

          I replied to your other post but I’m just going to say here that I have very little lag on my current Android phone, in fact it’s extremely fast 98% of the time so I have no idea what you’re talking about. Yeah, the stock browser is a bit slow by comparison to the iPhone’s or GS2’s browser but it’s hardly unusable and luckily I can download the far superior (imo) Opera Mobile. Yeah, the phone slows down when doing things like installing apps but who cares, I’m patient enough to wait the 2-10 seconds for it to finish. Unfortunately most people simply don’t understand the underpinnings of the technology behind these devices or what goes into making them, there’s no one size fits all approach or solution, particularly when you allow anyone and everyone to dabble with the code and put it on everything. The better manufacturers will make the better products. If Dominick wants explanations he can do the work himself and read the comments which outline errors in Andrew’s claims as well as simple facts. Dianne is spot on, software implementation and optimization depends heavily on the hardware.

  • Edgardocamposmota

    Dianne Hackborn was definitely born to hack.

  • http://twitter.com/mfg68 MFG

    All I know is the “hardware acceleration” in Honeycomb is crap. It’s a janky, stuttery mess. 

    Here’s hoping ICS is better.

    • Anonymous

      “”
      “Full” hardware accelerated drawing within a window was added in Android 3.0. The implementation in Android 4.0 is not any more full than in 3.0″””

      So no.

      • http://profiles.google.com/mechanizedapathy Shawn Brandel

        lol wut?

        • Anonymous

          Maybe RTFA?

      • Dominick DeVito

        It just wasn’t turned on by default in 3.X, devs needed to enable it in the:

         AndroidManifest.xml file and add the following attribute to the tag:
            android:hardwareAccelerated=”true”

    • http://twitter.com/binglut9 Brian

      Because most apps do not have hw accelaration on but beginning with ICS hw acceleration is automatically packaged in the app (new apps)…take this for what its worth but I heard someone that has ics on a tablet and it is an awesome experience from what they said…..still a little glitch and some bugs they have to iron out but she sounded promising as to say the prime with I cs will be the best tablet out without it tho its just another honeycomb tablet

    • Eduardo Trevino

      read the full post, it blames tegra 2

    • Anonymous

      The Tegra 2 (which most HC tablets use) has a lot to do with that.  Also, applications in HC didn’t default to hardware acceleration unless specifically supported and enabled by the developer, it is now on by default for all apps that target the ICS API level.

      • Dominick DeVito

        You think 4.0 apps will be any better?

    • Dominick DeVito
  • Christopher Riner

    first?!?! woot woot

  • Adam

    That doesn’t explain why scrolling/panning is jerky.

    • Guest

      Jerky? Well, not on the newer phones/tablets

      • Astro Turfer

        I have the Galaxy Nexus – it’s as jerky as ever (although some things are smoother, but not consistently smoother and definitely not as smooth/fluid as an old iPhone). My friend has the Galaxy Tab 10.1 – so jerky it makes me laugh/cry.

    • http://www.droid-life.com Tim-o-tato

      Mmmm jerky 

    • http://twitter.com/AaronVerhoeven Aaron Verhoeven

      I quote ”
      When people have historically compared web browser scrolling between Android and iOS, most of the differences they are seeing are not due to hardware accelerated drawing. Originally Android went a different route for its web page rendering and made different compromises: the web page is turned in to a display list, which is continually rendered to the screen, instead of using tiles. This has the benefit that scrolling and zooming never have artifacts of tiles that haven’t yet been drawn. Its downside is that as the graphics on the web page get more complicated to draw the frame rate goes down. As of Android 3.0, the browser now uses tiles, so it can maintain a consistent frame rate as you scroll or zoom, with the negative of having artifacts when newly needed tiles can’t be rendered quickly enough. The tiles themselves are rendered in software, which I believe is the case for iOS as well. (And this tile-based approach could be used prior to 3.0 without hardware accelerated drawing; as mentioned previously, the Nexus S CPU can easily draw the tiles to the window at 60fps.)

      • Pete

        Is this the same in menus? That stutters too.

        • Mike

          ya, just scrolling through my settings menu it gets stuttery.

        • Anonymous

          You sure you mean menus?  The menus that pop up when you hit the menu button?  Those are animations that are hardware rendered and never perform slowly on any android phone I’ve used.  If you’re talking about the settings screen, that’s software rendered, jerking can happen whenever it’s trying to render scrolling animations while the system is doing other resource heavy tasks like writing to memory and storage.

      • http://twitter.com/ZombieLove69 michael arazan

        they had to do it that way to not infringe on patents like HTC is busted for. Now HTC has to remove their phones fom the market

    • Anonymous

      Hmmmm, did you read the full linked article or just go with the cliffs notes??

    • FortitudineVincimus

      Nor does it explain the delay on the Asus Prime

      • EC8CH

        seriously… I LOL’d

    • Anonymous
      • Anonymous

        Andrew is incorrect on many things in that opinion piece.  The simple fact is that there is no easy explanation, performance or more precisely the illusion of higher performance has everything to do with the hardware, the OEM’s optimization for that hardware and the experience of a developer.  Badly written programs will always perform badly, no matter how fast the hardware or how well designed the OS is.

        • Dominick DeVito

          Wrong. Again.

          • Anonymous

            Yes, you always are.

    • Phil

      I don’t care why. I want to know if they’re going to solve it.

  • Anonymous

    Nerdgasm