My friend and former intern colleague Andrew Munn has raised quite a ruckus over the laggy behavior experience by users of Android. His original contention has been that Android lacks a dedicated UI thread, and thus is unable to compete with systems like iOS that offer such a thread as part of its graphics architecture. This claim has been rebutted by several critics, most comprehensively by Dianne Hackborn of the Android development team.
Yet, there is something still missing from this discussion. Why is it that Android still seems laggy after years of development? This is not a minor discussion, but goes directly to the quality of the user experience of the device. Dianne’s main argument (she has several of them) is that Android’s API model ensures that every app is sandboxed, and that the ability to optimize the graphics is difficult because the hardware is just not there.
I don’t buy that argument.
Instead, I think she nibbles on the right argument near the end of her piece. In the penultimate paragraph, she describes the similar experience between programming for iOS and programming for Android:
One final thought. I saw an interesting comment from Brent Royal-Gordon on what developers sometimes need to do to achieve 60fps scrolling in iOS lists: “Getting it up to sixty is more difficult—you may have to simplify the cell’s view hierarchy, or delay adding some of the content, or remove text formatting that would otherwise require a more expensive text rendering API, or even rip the subviews out of the cell altogether and draw everything by hand.”











