Also this dashboard is hugely misleading for the HN audience - in western audiences (USA, Canada, EU, etc. - countries HN users are from) we're tracking ~10% devices that are running Android 4.x and more than 40% devices running on Android 6.0 with additional 15% on 7.x - meaning more than half of active western users are running decently modern Android.
Now with Android N reaching 7%,one year later, who do they think will even bother with Android O?
As soon as the sdk will be final we will think about compiling against it and targeting it.
We are not in a huge hurry, it can skip a release or 2 (we release every 3 weeks). There are no big breaking changes though (unlike let's say Marshmallow) so as long as the support lib is stable (it needs to match with compile version) we are going to support it ASAP.
We also have some N features like shortcuts.
First, that 7% figure is the whole Android (with play services) user base, numbers are pretty different on the dashboard of our general public app.
Secondly, we will start by compiling for O : the supports libraries are only tested for their corresponding compile version. That way we will be able to use new support lib features on all Android versions.
Then, we will target O (probably in the same release of the app). It should be pretty trivial : this is not marshmallow with the new permission system, system level changes in O are manageable.
For clarification, the build script of an android app separates compile version (= binary compatibility) and target version (= you handle the new behaviors of the system like granular permission in M)
By targeting O ASAP we :
- are potentially able to ship some features based on this release, like shortcuts for N. Sure, we are not going to spend a lot of dev time on an O-only feature right now but there are some easy wins. And of course the install base does not stay small for very long.
-are able to detect potential problems before OEMs start launching flagships with that Android version and we get millions of crashes / day.
There is really no good reason to stay behind.
And he has a point : Google could easily ask that all new apps target the last version of the OS.
Ok I am not a lawyer or a part of the negotiations between Google and OEMs but I don't think Google can force OEMs to keep phones up to date for a given amount of time.
First, it is not just up to the OEMs, they need new drivers for new platform versions.
Secondly, what leverage does Google have here ? Preventing OEMs from releasing phones with Play Services looks like a really sharp double edged sword. Even triple edged actually since consumers would also suffer from this kind of deal.
Same applies to the southern countries, which I visit regularly.
Most people on 6.0+ are on contracts, which are the minority, even though many of them might be using your app.
I've yet to also see a single worldwide USAGE statistic that would reflect that dashboard. Whatever Google is counting is not the users that actually download and use apps (and are thus vulnerable) - pretty much all stats I've ever seen (even on apps with millions of worldwide downloads) have significantly higher update rates. Hence - misleading.
build your app for android 5 and push to the store.
done. target 100% of devices and get no dialog for android 6 users.
Sure, I can hunt for this on my own. That's not the point here. If I'm walking around with a supercomputer in my pocket, I'd like it to do this sort of stuff for me automagically.
Not obvious I know :/
Myself, I don't care about the fact that Google is 'failing' on this, because even if they fix all the problems you identify, the people exploit such approaches will find some other loophole to exploit or work around. The inevitable result: another arms race that doesn't create value for consumers.
What I care about is the recurring social problem of which this is just the latest instance: marketing/advertising folk deceiving consumers. If your business model relies on deception then you are a Bad Person, and this applies equally to those who dream up such schemes and those who implement them at the technical level.
The legal system does not move at the speed of software development, and so there are strong economic incentives to engage in such unethical behavior and move on before people catch on and organize themselves to litigate the issue or effectively regulate the behavior. It is time, therefore, to punish bad actors by more direct methods of retaliation, which necessarily involves inhibiting their ability to buy their way out of trouble by renting legal mercenaries.
On modern Androids (6.0+) accessing the microphone requires an explicit permission granted by user (just like on iOS). Furthermore, due to Doze mode implemented in 6.0 and expanded in 7.0 running these kind of services without notifying the user cleary (with permanent notification) has become pretty much impossible and unreliable. To run in background when the phone isn't in active use the service needs to be marked "Foreground" which demands a permanent notification.
Having said that - Google is failing here in several ways. First, they STILL let apps be published that don't target Android 6.0. Apps that target older Androids get permissions granted at install time (those can be revoked, but user needs to go to settings for that). There's no reason to let people publish new apps that don't adhere to new permission model, but Google just doesn't care.
They also need to clearly mark use of system resources in the background - just like we have the GPS icon, we need a clear indication of active microphone, speaker and other hardware modules while running in the backgorund.