The one thing that is probably going to keep me from buying another Android phone for my next phone is the lack of upgrades to Android over the life of my contract. If you live in the United States, and you likely do since you're reading this on a US publication, you know that two-year contracts are the norm for cell phones. Pre-paid and pay-as-you-go products are catching on here, but they are still way behind the big 4: Sprint, Verizon, AT&T, and T-Mobile.
To encourage customers to buy or renew a two-year contract, the companies offer subsidies on the phones, usually $150 or so, if you sign a two-year contract. In essence, this enables the customer to buy a nicer phone and amortize the cost over two years. The issue then becomes you can't get a new phone for two years unless you want to pay the full price which can be upwards of $400.
This is why Google should require all Android manufacturers to provide Android updates for a minimum of two years. Three years or more would be the most ideal as most phones aren't on the market for more than a year. This way if you purchased a phone right at the end-of-life, you would still be covered with updates until you could purchase another subsidized phone.
On my current Samsung Epic 4G, the highest Android version I've seen come over-the-air(OTA) is 2.3.4, quite a bit behind the current 4.0 Ice Cream Sandwich. The phone has been out for around 2 years now and I just became eligible for my upgrade this month. I just can't justify buying another Android phone unless they are going to support the device.
It's a major purchase akin to buying a PC. Imagine if you bought a Windows laptop or desktop and HP or Dell kept making you buy new hardware to get bug fixes or updates for Windows. You see the parallel? I realize that HP and Dell don't make Windows, but the idea is similar--the operating system receives security updates and bug fixes over the useful life of a device.
If Google wants Android to really be able to compete with iOS, this is something that has to be required of manufacturers. Apple supports the iOS line of devices with completely new versions of iOS. True, they aren't always available on the older devices, but the original iPhone is somewhere around 5 years old which is way outside the 2 or 3 years I want Android phones supported for.
Android has some great features, but I have yet to experience them thanks to Samsung not providing an update to a later version of Android. People complain about adoption rate for the latest Android OS and this is a major cause. It's simply not available for people to adopt unless they buy a new device. I'm by no means rich and simply can't afford to buy a phone without the subsidy.
Don't get me wrong, I love Android. I love what Google is doing with the operating system. However, this change really needs to be implemented into Google's licensing of the operating system. Otherwise, I'm afraid I'm going to have to go with a new Apple iPhone 5.