Why Android is laggy compared to Windows Phone 7 and iOS

I just came across the best in-depth explanation regarding the well known UI performance issues that Android exhibits even on really high-end devices compared to modest hardware running Windows Phone 7 or iOS. The lengthy post was written down by Andrew Munn (in response to Google’s Dianne Hackborn’s earlier post about GPU HW accel in Android here) who was an intern on Android team (and who is interning on the Windows Phone Team at Microsoft next month). There are a couple of errors in his description of the way iOS handles the UI thread so keep that in mind when reading him. Other than that it’s a fairly accurate view of why Android is and most probably will never be ass efficient as iOS and Windows phone when rendering UIs simply because of early design choices when the framework was created. Throwing more processing power seems to be the only solution so far (plus the addition of HW acceleration in so parts of the OS in Honeycomb and ICS).

There are three main causes:

- The UI rendering isn’t done in a separate dedicated high priority thread but in the main thread with normal priority instead
- GC (Garbage Colector) / Timing issues.
- Lack of Hardware acceleration in the vast majority of the OS and the way UI rendering is handled: “On iOS, each UI view is rendered separately and stored in memory, so many animations only require the GPU to recomposite UI views. GPUs are extremely good at this. Unfortunately, on Android, the UI hierarchy is flattened before rendering, so animations require every animating section of the screen to be redrawn.”

Continue reading Why Android is laggy compared to Windows Phone 7 and iOS →

Nokia Lumia 800 face off

Long story short: I now own two Nokia Lumia 800 phones. The one you see on the left was supposed to arrive a long while ago but got lost in translation so I bought my own a bit more than a week ago (the one on the left). Oh well never mind I guess I paid for one (on contract and finally got the other one free. Anyway the first thing I obviously did was to try to reproduced all the issues I have discussed in my previous post and sure enough they are all present on the second handset. That a good thing I guess because this implies that they are present on all handset and can most probably be fixed by a firmware update. There one big different between the two handset (which have exactly the same firmware, hardware revision number etc: The screen on the second Lumia 800 doesn’t exhibit the yellowish thin of the first one (the whites are brighter which means that the battery will be drained faster). I check the phone’s serial number and it seems like they are not from the same batch so the AMOLED panel is either not setup the same way or is also from a different manufacturing run (Both are Carrier branded but not by the same one..). Check out the picture below:

Continue reading Nokia Lumia 800 face off →