Why is Android laggy?
An interesting technical analysis by Andrew Munn on Why is Android laggy, while iOS, Windows Phone 7, QNX, and WebOS are fluid?
Android UI will never be completely smooth because of the design constraints I discussed at the beginning:
– UI rendering occurs on the main thread of an app
– UI rendering has normal priority
Even with a Galaxy Nexus, or the quad-core EeePad Transformer Prime, there is no way to guarantee a smooth frame rate if these two design constraints remain true. It’s telling that it takes the power of a Galaxy Nexus to approach the smoothness of a three year old iPhone. So why did the Android team design the rendering framework like this?
Work on Android started before the release of the iPhone, and at the time Android was designed to be a competitor to the Blackberry. The original Android prototype wasn’t a touch screen device. Android’s rendering trade-offs make sense for a keyboard and trackball device. When the iPhone came out, the Android team rushed to release a competitor product, but unfortunately it was too late to rewrite the UI framework.
This is the same reason why Windows Mobile 6.5, Blackberry OS, and Symbian have terrible touch screen performance. Like Android, they were not designed to prioritise UI rendering. Since the iPhone’s release, RIM, Microsoft, and Nokia have abandoned their mobile OS’s and started from scratch. Android is the only mobile OS left that existed pre-iPhone.
Android makes so many changes from version to version that apps have to be rewritten anyway. Might as well bite the bullet and rewrite the rendering framework sooner rather than later.