We're talking about phones that have a practical size, reasonably good specs, and a $300-$400 price tag.
The Nexus 6 and 6P were impractically sized for many users. Even the 5X was too large.
The Pixel's sizing is perhaps more tolerable, but the price tag is much too high.
People hanging on to a Nexus 5 are out of luck, since it isn't getting Android 7 and beyond. Those with a Nexus 4 are even worse off.
While I'd like to use a newer version of Android, I've yet to find a suitable device on the market. Google filled this niche a few years ago, but their recent offerings are no longer suitable.
Literally disappeared from all settings this week after a restart.
Have to restore or something equally tedious.
OnePlus 3T got my money instead.
Hopefully if Google releases another like-sized device it's better than the N6 which becomes unusable as soon as CPU throttling starts. As soon as battery gets below 70% it literally takes seconds for mundane tasks like opening a new browser or keyboard.
I don't expect Google to fix it on the N6 but I really hope they don't recreate that experience on their next offering because it's beyond frustrating.
I keep hoping that Google will figure out a solution to that (restrict access to Play Services, say). Until then, I guess I'll continue targeting API 16.
The basic problem is that updates are an expense once the SKU starts shipping, while spending the same money on a new SKU is an investment.
Apple get around this because they own the whole stack. Thus keeping a device going longer means more exposure to their stores.
Never mind that even though they release a new iOS in name, major new features are left out for the version pushed to the older devices.
Never mind that on Android APIs can be supplied by APKs, and thus we have Play Services.
Frankly the only thing Google can do is adopt something akin to what they have on ChromeOS.
Split the Android VM layer from the Linux layer, so that they can update the VM layer independently of the kernel and userland layer.
Another issue is unless you are looking at white box rebrands, each OEM tailor the Android UI/UX.
Unless Google makes it possible to isolate this tailoring from the core Android code, there will still be lag time between Google releasing a new version, and it hitting devices. And that is reliant on the tailored variant fits inside the storage space of the device.
This is simplistic and largely wrong. Only when there is a lack of appropriate hardware e.g. noise cancellation in the A5 chip or inadequate RAM has Apple decided not to port to those older devices. It's not a deliberate policy especially since they have been selling older devices alongside the newer ones.
That said for developers it's been about 99% of features available on all devices.
I started targeting API 19 (4.4, KitKat) over a year ago and have never looked back. That encompasses the vast bulk of Android users (>85%) and encompasses almost all of the significant developer improvements. Even using the absolute latest fun such as multiple windows is an absolute breeze from the development side, regardless of many users not supporting it yet.
As a side benefit, the devices that get excluded are often older, often abandoned devices. I previously tried desperately to support all of those older devices and the reward were a barrage of low ratings by people on poor performing old devices.
Android has a planned obsolescence thing. I've gotten use to it.
"App crashes on open when using my 1989 car phone, 1 star"
you are ignoring your own effect on that.
The fact that every developer moved to API 19+ is why most users gave up and spent another $400~600 on a new unneeded phone.
And thanks to that, no manufacturer will ever support the latest release on a month old phone, because they now know people will just buy a new one.
Most of people are on pre-pay and not everyone can afford those prices.
Here in this side of the planet, you get KitKat devices around 50 €, then Lollipop start selling around 100 €.
For Marshmallow, usually the prices start at 200 € and most devices are only available on a few shops or online.
As for Nougat, I am yet to see any shop selling them.
So no, most people that just want a phone, any Android phone, will get one of those KitKat/Lollipop devices with their pre-paid card.
At some point the market will settle as the pad market did, however right now the lack of pressure on vendors to support upgrades is also a reflection of a user base that is accustomed to constantly upgrading (better cameras, processors, storage, etc).
I have seen the same kind of stats on apps supporting all APIs levels.
Turns out that people likely to install / use app are using more recent phones in general.
Targeting 16 is just incredibly stupid but I have seen some devs unable to read the documentation..