
Although I tend to be quite the Android fanatic, there is one area Ive always felt has been neglected a bit by developers. The responsiveness of the graphical user interface. Many think it its an Android specific issue and that Android has always been inferior to iOS and now also Windows Phone 7 in this matter.
Even after Android received support for full graphics hardware acceleration in Honeycomb (3.0), it is still failing to reach up to the competitors.
Andrew Munn, a former Android team intern tries to shed some light on the matter. While he does have some valid points on why an Android device, no matter how powerful, feels less responsive and smooth than an iPhone or Windows Phone 7 device, he is in my opinion missing the point. Unfortunately, this lag issue in Android wont change in quite some time, but I dont think its for the reasons Andrew Munn describe.
Read the full post here then read on for my personal commentary
So just like Andrew, I dont have any authority on this matter either. I have worked with Google on Android related matters but I have never studied the rendering code and all I know is based of assumptions and overall knowledge of how Android is built.
My primary point that I want to get across is that even though Android's lag issue will never fix itself, it is really up to the app developers to get it right. It is possible to make Android apps that respond beautifully and Im sure you've found a few. However, as a developer you are forced to pick between graphical responsiveness and the work the app needs to get done unless you take the effort required to do things properly and code your threads as they really should be. Take Google Maps for instance. The "old" Android version of Google Maps was based around .png map tile images and it performed wonderfully and was generally very responsive. Now it uses hardware acceleration based on vector graphics and its struggling on my trusted Nexus One. You could boost the UI thread priority but that would mean that the threads loading the map content would take longer time to do its work. If the developer follows the clearly documented Android development guidelines and decouples the UI rendering from the actual work in the application, lag wont be a problem. Of course it is frustrating when Google's own apps such as the Android 4.0 gallery or Maps app fails to achieve this, but that doesnt change the facts.
I think I still prefer content over perceived performance though if forced to pick. On the iPhone 4S, I know lag is there even though its "hidden" well. When you open an app you get the feeling that it pops up right away and is ready to go, but in reality its basically a screenshot you are seeing at first which is then replaced by the actual app once the content threads are ready. The Android way of approaching the problem is to not waste time tricking you into thinking an app is ready but instead focusing its effort on loading up the functional content for you, especially since if done correctly, there is no reason why there should be any lag at all.
Andrew Munn argues the problem is in the Android rendering framework. If this was true, then we woulndt have apps that perform so smoothly and some that dont. They would all suffer from the "issues" in the core rendering engine. If we want better app responsiveness we would have to force developers to code better and stop with bad practices including poor ports of apps developed for iOS.
But in the end though, what matters is how it feels when you use an Android device. As long as an iPhone or a Windows Phone 7 device feels more responsive and smooth, its a drawback for Android no matter how you look at it I think.
blog comments powered by Disqus