However, that diversity in hardware is also the biggest problem with the platform. Handset manufacturers seem to look at a device as a "sell and forget" sort of item. They make it, sell it, and then move on to the next project.
It's too expensive, in their minds, to support a handset that they've already sold. They make money by selling more handsets, not by putting large amounts of effort into supporting and updating old hardware from which there is no revenue stream.
Apple, on the other hand, actually has a significant revenue stream from existing hardware through the sales of apps, music, and books. So, by providing updates for older versions of the hardware they are improving their ability to collect additional revenue. For example, when they added in-app payments, those APIs were available to all existing iPhone users, not just the newest users and thus were able to extract more profits from those existing users.
In the Android world, a manufacturer only makes money from the original sale. So, it seems that in order for Google to encourage on-going support, they should:
1. Participate in a revenue sharing program from app sales from the manufacturers phones that are running the most current release of the OS.
2. Improve the situation with drivers the large variety of hardware. If the Google distribution supported a large amount of hardware (CPUs, GPUs, sensors, etc) "out of the box", perhaps it would be easier for manufacturers to get the OS running on their devices and thus take less time to get updates to market. Or perhaps I'm being naive and there's something else that's holding up updates other than technical issues with drivers/hardware compatibility.