I have had a Samsung Galaxy S Android phone since Christmas. My wife acquired an Iphone 4 two weeks ago. We both love our phones but one annoyance for me was how much more responsive the Iphone feels in use. The Samsung running stock 2.2 Android Froyo would often lag and feel sluggish.
I solved the lag by installing a custom Android kernel called SpeedMod which performs much behind the scenes magic without disturbing the front end user interface. It is a terrific mod which makes the phone fly. I can now whizz around my Android with the same speed and grace that my wife navigates her Iphone.
Installing the mod is not for the faint hearted however. You need to break into the operating system through a process called rooting which almost certainly invalidates your warranty. I spent hours trawling hacker forums and websites gleaning the relevant information and further hours figuring out how to back up the rom before I started so I that I could reverse the process should the need ever arise. (By the way you may also need this to get Rom Manager to work.)
While the results are impressive there is no way I could recommend this complicated process to the average user and this highlights a key dilemma of the Android phenomenon. Android is a mass market product with a total installed base that surpassed Iphone some time ago. Yet the average user does will not have the competence to get the best experience from their Android device.
I don't actually blame Google or Samsung's engineers for not making a product as polished as an Iphone. It seems to me that this is a consequence of the curious hybrid of closed and open technology models that Android has become. Apple's fully closed technology allows their engineers to control every aspect of the user experience on a very limited set of hardware and fine tune it to perfection. Android is an open operating system appearing on a much wider range of platforms and it is no surprise that the user experience is not as finely polished on any one of them.
Open source can solve this problem - an army of talented coders are busy tweaking and modifying to come up with refinements that make it as good as if not better than anything Apple can provide.
Unfortunately Android and Android products are not fully open source. Google and handset manufacturers have locked down their individual products in ways that make it difficult for the man in the street to enjoy the full benefit of this open source creativity unless they are prepared to delve into the geeky world of phone modding.
There is talk in recent times that Google are moving towards a more closed technology model as they extend Android into the Tablet market. The logic is that by exercising greater control over the platforms that Android appears on Google will be able to deliver a more polished product. I can understand that logic but I think it is still flawed: Android will still have to support dozens of different products while Apple need only support two. Apple's engineers will always have a much easier job delivering a polished user experience.
Why not go the other way I wonder? Make products that are even more open and provide a very simple way to install custom hacks and improvements. Perhaps a single password would give root access and allow a user to download new firmware from the Android market. Maybe manufacturer's are worried about the support nightmare arising from ill informed users downloading completely inappropriate software but they could provide a fail-safe method of returning the device to a factory condition saved in non volatile memory.