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/uploa
ds/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+






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!
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.
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!!!
I don’t think it is, if you do then you best get an iPhone.
phlpn.es/829r8s
@CORYK333:disqus ..,..
linkhide.com.ar/47632
linkhide.com.ar/47632
Her last name is hackborn? That is too sick.
Yes. And “She Hackborn” hacks the geekest mobile operating system in the world. ¬¬
Talk about an easy cliche.
She’s not really helping her case. If it’s always had it why we’re past versions choppy?
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.
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.
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.
“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…
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.
And yes, I agree with you completely, SAMSUNG has done a great job. Too bad other OEMs haven’t.
AKA: Why I hope that ICS is the most buttery smooth on the Galaxy Nexus because it was built for ICS from day 1.
That lady knows what she’s talking about. I feel like she was born to hack.
Edit: Damn….. Too late on that one.
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.
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.
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.
Which ICS Rom are you using?
You can find it here…
http://www.reddit.com/r/Android/comments/mwblb/droid_incredible_ics_rom_working_adreno_egl_libs/
Yes, browser was reworked in ICS. But it has nothing to do with scrolling and drawing. Page load speed in Android was always superb.
Then again, would you ever expect a regular consumer to read that entire post.
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
This is a great post and explains why Android lags really well and clearly.
Excellent post.
Great read, thanks.
Don’t believe everything you read; Andrew, while correct on a few things, is incorrect on other points.
And they are????
Put up or shut up McClane. I’m tired of hearing you talk out of your ass.
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”.
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.
Dianne Hackborn was definitely born to hack.
All I know is the “hardware acceleration” in Honeycomb is crap. It’s a janky, stuttery mess.
Here’s hoping ICS is better.
“”
“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.
lol wut?
Maybe RTFA?
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”
That I knew.
But it’s up to the devs also to thoroughly write apps consistently all the way through. I use this guide:
http://developer.android.com/guide/topics/graphics/hardware-accel.html
Best part about Android, is that all this info is free and available.
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
read the full post, it blames tegra 2
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.
You think 4.0 apps will be any better?
It was available in Honeycomb, just needed to be enabled in the AndroidMainifest XML file.
https://groups.google.com/forum/#!searchin/android-developers/GPU/android-developers/lIY1yGU7Owk/Tgfs9IFhtccJ
Or read this one.
http://android-developers.blogspot.com/2011/03/android-30-hardware-acceleration.html
first?!?! woot woot
That doesn’t explain why scrolling/panning is jerky.
Jerky? Well, not on the newer phones/tablets
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.
Mmmm jerky
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.)
“
Is this the same in menus? That stutters too.
ya, just scrolling through my settings menu it gets stuttery.
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.
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
Hmmmm, did you read the full linked article or just go with the cliffs notes??
Nor does it explain the delay on the Asus Prime
https://plus.google.com/100838276097451809262/posts/VDkV9XaJRGS Read this.
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.
Wrong. Again.
Yes, you always are.
I don’t care why. I want to know if they’re going to solve it.
Nerdgasm