Feb 11th, 2015

chrome logo

Google’s latest move could easily be misconstrued as “evil,” but here it is: Google Chrome for Android builds now seem to require a build of Google Play Services. If you’re not aware, Google Play Services is the driving force behind many of Android’s best features, and is the standard platform for Google to introduce new APIs, features and other tools for developers and users.

So what does this mean? It means Android devices that don’t include Google Play Services — like Amazon’s phones and tablets or pretty much any device that doesn’t come with Google Play or Google’s other apps — might not be able to run Google Chrome for Android.

Your first question might sound something like this: “If Google Chrome for Android is only available from Google Play, then what’s the big deal?”

Well, Chromium — the browser project Google Chrome is directly based on — is open source, so any developer or advanced user with the technical know how can still build the app from source code and load it up onto any compatible Android device that allows sideloading. The amount of users who might have a non-Google Play Services device and want to do that is probably extremely slim, but it’s still a pretty big deal for them.

Google says they have to do this in order to facilitate publicizing code that was previously kept private, with the main example being the code that makes Casting video to Google Cast devices possible.

The technical details of why this change was needed to make that happen have yet to be provided, but we’ve reached out to Googlers and contributors to the Chromium project to see if we can find out more.

[Update]: We received the following explanation from the man responsible for the commit:

The  Chrome for Android build (as opposed to the Chromium Android build) been dependent on Google Play Services for some time, however the code and build files for this were in the private Google repository.

This moves this dependency into the public Chromium repository, so that we can upstream into the public repository some of the code that implements the features that are dependent on Google Play Services (in particular casting videos to Chromecast).

I believe that all features in Chrome for Android that use Google Play Services check that Google Play Services are present on the device before using them. Whether or not they do, this CL, and the upstreaming, should make no difference to the behaviour of Chrome for Android, since it just moves code between repositories.

Note that while this doesn’t change Chrome for Android itself it does change the Android Chrome Shell build to be dependent on the Google Play Services libraries.

So there you have it. Not much will change from a user-facing perspective for a vast majority of you. Chrome will continue to function perfectly normal on any Android device that uses Google Play Services.

Those who do need to build Chromium for Android from source will have a slightly different path to take if they’re working outside of the scope of a typical build environment that has Google Play Services. Nothing more, nothing less.

[Chromium via Google+, thanks Tom!]