Hard for an end user if no official OTA upgrade is offered.
Apple is in sole control of which iPhones (et al) iOS upgrades published and when. They generally do so for several years after a model is announced, and every device can download the newer version on the same day. Even the 3GS got a cut down iOS 6.
For an Android device the decision is made by a combination of the manufacturer and (for phones) the operator. A device typically gets 1 or maybe 2 official upgrades beyond what it was sold with, maybe months after Google announced that version. Some get no official updates.
There's CyanogenMod etc. for those of us with the know how/confidence, but most people shouldn't/won't do that.
Because after 6 months the supplier forgets they soled you the phone and doesn't release any more updates. You might be able to update by rooting the phone, but most people can't get bothered.
I've been once burned by HTC (Wildfire). One update after 3 months and that was it. Still runs Android 2.x. with countless major bugs, like 'when you click on one SMS message, it opens a completely different one'.
Is Samsung better in terms of update policy? Otherwise I will probably go with an iPhone this time.
Unfortunately, I don't see Samsung as much better. I was burned while holding a Galaxy S (Maxed out at 2.3.5) and Galaxy S2 (Maxed out at 2.3.5[US version]). As far as I know that is the end of the road for the S2.
Because the OEMs and carriers see them as integrated products and not as systems running an open kernel and open windowing environment. They don't see any point in separating the two, defining a clear interface specification between them, and upgrading the system software to match the hardware. If they did that they could release an update to the userland system that matches the kernel-land and lower level radio and hardware interfaces. Every android device could run an upstream-derived (and tracking) kernel and core system layer, with the binary graphics drivers and other closed components released on a schedule. Android, as delivered by Google for the Nexus series could run on every device.
It was more difficult to go from 2.x to 4.0. In between was 3.0 which is essentially a tablet-only showcase OS - it didn't work on phones. That made 2011-2012 seem like an eternity for devices to get back into the upgrade cycle. And by the time devices could be upgraded it was clear most of them weren't powerful enough to make the leap.
It's very different now. If you buy a standard Android smart phone (not a low end / small screen device) it will be much faster and easier to receive updates.
Running a customized Android means that the OEM, has taken on the responsibility of upgrading. In the case of phones, the carrier may have their own software load and so they, too, now sit on the critical path to an upgrade.
Apple is in sole control of which iPhones (et al) iOS upgrades published and when. They generally do so for several years after a model is announced, and every device can download the newer version on the same day. Even the 3GS got a cut down iOS 6.
For an Android device the decision is made by a combination of the manufacturer and (for phones) the operator. A device typically gets 1 or maybe 2 official upgrades beyond what it was sold with, maybe months after Google announced that version. Some get no official updates.
There's CyanogenMod etc. for those of us with the know how/confidence, but most people shouldn't/won't do that.