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.
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.
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.
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.
Targeting 16 is just incredibly stupid but I have seen some devs unable to read the documentation..