As someone who's spent just as much time (if not more) developing for embedded Android devices without Google Play Services as developing for "traditional" ones, you're making a meaningless distinction.
It's half the functionality that makes an Android device work for an unsophisticated user. To the point that people have to write shims just to get basic apps to run without it.
And the amount of functionality Google has moved into GPS has only grown over the years mind you, from things like Doze and its interaction with GPS, to installation processes that hook into it for verification...
If Android didn't have Google Play Services, it wouldn't be anything more than what Linux on smartphones is... a toy for geeks, nothing competitive with offerings like the iPhone.
Android is thoroughly insecure, and proprietary apps do not generally work without Google services. Google has successfully convinced, for example, nearly all apps using location, to use Play Location Services instead of Android Location API. Apps tend to just crash out without Play Services.
Even Microsoft, which is Google's direct competitor for all of these services, hilariously depends on Play Services for nearly all of their Android apps. Office, Skype, etc. all will not run on an Android phone without Google.
I have a Windows Mobile phone these days, and for all the jokes about it being dead: I actually have a wider app selection than AOSP users. Android is a proprietary OS, and almost none of it's apps today are compatible with the open source version.
You're conflating GCM and the wider Google Play Services that is installed on most Android devices. As someone who actually uses AOSP without Google, it weakens your argument when you conflate the two.
The problem is, even most apps from Google's competitors now won't run without Google Play Services. Android is becoming increasingly useless as an open source OS.
You need Google Play Services if you want to run the average app. There is no difference, in the consumer's mind, between Play Services and Android. Deliberately, on the part of Google - new geo services are Play Services only, for instance.
The problem is that the majority of apps written on Android these days depend on Google APIs or libraries, to the point that an Android without Play Services is almost useless. (Yes, this is from experience.)
Even Google's direct competitors require Google to use an Android. Skype and Outlook are great examples of apps you'd be amazed to discover will not run at all without Play Services.
It seems like you don't want to install Google Play Services on your device. My sense is that this isn't because you find the communication over GCM to be inherently offensive (it's just a tickle, after all), but because you don't want to run proprietary software.
There's a very small number of people who find this to be very important, and my experience has been that the strategy is to loudly complain whenever anything depends on play services. Just tactically speaking, I don't think this is going to work in the end, in the same sense that simply refusing to have a mobile phone won't work anymore -- slowly, the circumstances around this technology will make it impossible to refuse.
What I don't understand is why nobody just writes an API-compatible open source implementation of play services. Even if it only supported GCM and nothing else, that'd unlock an enormous swath of apps, and would only require writing a basic implementation of the GCM network protocol.
I'd love to know more if I'm misunderstanding the challenges around doing that. Right now it's part of the reason that I don't pay much attention to that crowd -- everyone seems very willing to complain, but nobody seems willing to do what seems like pretty straightforward work to solve their own problem.
It wasn't. Play services is just add on features that proxy app permissions and centralize push notifications -- no actual Android features moved into Play services that I know of. Ie: auto filling SMS OTP codes. It feels like Android is being sucked up that way, but that's because there are a lot of really nice features in there, like push notifications, geofencing, etc.
You can still run Android without GMS core and Play services -- I do that, myself, on a Pixel 3a running Graphene. The trick is that you lose some nice functionality (which Android actually makes up for in some cases, ie: SMS OTP copy buttons), and the mapping experience is god-awful (mostly because the OSS mapping scene is hopelessly stuck in the 1990s GPS model)
Unfortunately, bare-bones Android may get barer and more awkward over time, if they migrate more services from the core OS into "Google Play Services". As an example, the new geofencing APIs that they announced at the last Google I/O (intended to replace the buggy core "proximity alerts") are part of "Google Play Services", not the core OS --- and therefore not available on devices which aren't part of the Play borg.
(To be fair, their announced reason for this is that it gives them a way to make these APIs available on devices that aren't getting regular manufacturer updates. That said, I'm sure it hasn't escaped their attention that it also adds a point of differentiation between Play-enabled devices and, say, the Kindle Fire...)
Google was smart and sort of protected itself from Android forks years ago, when they started putting more and more functionality in Google Play Services. Most apps need that to run now, and it isn't open source.
So, the problem is that Android is open source in concept and name only, not in practice: Code is developed in the dark, and then published later, it's not a collaborative environment. And the important part is that Google fully controls what direction Android development moves in. So they're going to design it to advantage themselves and disadvantage others.
So the first problem with that is that the work to remove their influence becomes progressively harder, and the bigger problem is that if you want to maintain app compatibility, you basically have to accept nearly everything Google decides to do as is... you can't really "just fork it" without losing the main perk of running Android: Running Android apps.
As it is, most Android apps won't work on a device without Google Play Services, because Google has pushed app developers year after year to switch from depending on Android platform APIs over to Google Play Services APIs for basic functions like location.
'google play services' is software package (app) that sits between the os (android) and the (other) apps. it provides a lot of middleware like maps and push-notifications. it has grown in power to the point that an android phone without them is pretty much pointless, hence micro-g tries to substitute.
Few people use phones without Google Play Services.
Because of that, it doesn't make sense for application developers to support the use case.
Because of that, lots of applications don't work without Google Play Services.
Because of that, few people use phones without Google Play Services.
(And then people complain about the lack of open Android alternatives, or that other OSs such as Sailfish do not take off despite doing crazy things to support Android applications.)
Google Play Services are not (currently) required for developing and running apps, unless those apps integrate with Google's services, like Google Accounts and Google Maps. Of course nearly every Google App will break if you disable it, since every Google App is proprietary and Google's Play Services is their common framework.
The question is - do third-party apps break if you disable Google Play Services? And the answer is that it depends. If the app needs Google's services then it will stop working. However, making Play Services open-source, at least for the functionality provided right now, wouldn't do any good. Because those services rely on Google's server-side infrastructure, so you're still at their mercy.
The only thing that bothers me is the Wifi-based location tracking. Google collects info about nearby Wifi networks and so the phone is able to give a pretty good estimate of latitude/longitude coordinates, even without turning the GPS on. Turning Google Play Services off means that Wifi-based location tracking stops working. And this is a pain, given that many apps these days (Facebook, Twitter) want to get your current city and so Facebook for example is accessing my GPS every time I open the app, with no way to turn this functionality off and it's consuming my battery and the GPS status notifier is annoying. In case you're wondering I had to turn Wifi-based location tracking because of a bug in the latest Android 4.3, as it is preventing my Nexus 4 to go to sleep, thus draining my battery.
It's half the functionality that makes an Android device work for an unsophisticated user. To the point that people have to write shims just to get basic apps to run without it.
And the amount of functionality Google has moved into GPS has only grown over the years mind you, from things like Doze and its interaction with GPS, to installation processes that hook into it for verification...
If Android didn't have Google Play Services, it wouldn't be anything more than what Linux on smartphones is... a toy for geeks, nothing competitive with offerings like the iPhone.
reply