Question

Current Google GCM documentation requires you to install Google Play Services and to use them for GCM (Google Cloud Messaging). The library is 1.1MB, yet my current .apk is half that size. My app is intended to receive GCM and display some data on the screen, so I don't need Google Play Services' Maps API, G+ login, etc. Nor I need to be able to respond back to the server after getting GCM.

SDK Manager allows download and installation of standalone Google Cloud Messaging for Android package. It is the one that was used before Google I/O 2013, where Play Services were announced.

My question is: what is the difference in performance between GPS's GCM and standalone GCM for Android? Do I really have to switch to GPS? Is standalone GCM depricated? Can I still receive data (up to 4K) with standalone GCM?

Was it helpful?

Solution

As far as I know, yes, the old one is deprecated (it says so here http://developer.android.com/reference/gcm-packages.html), but still works.

I would recommend using the Play Services version, though, since it's MUCH easier to configure and use, and if you don't need G+ login or anything else you don't have to use it. Yes, your APK will be a little bit bigger, but I think it's worth it.

Plus, any new features or improvements to the protocol will most likely be only for the Play Services library, and not for the old one.

OTHER TIPS

The old GCM though deprecated, still works. And there is a probability it will be working for some more time. Personally, I implemented the new GCM using the play services and it seems to be buggy as there were devices that could not get the registration ID and got the SERVICE_NOT_AVAILABLE error. So after some research I wasn't able to find a solution for it, and reverted to the old GCM method that uses GCMIntentService, and I was able to get back the registration IDs. Bottom Line : Seems you can use the old GCM method for the time being.

You don't need to worry much about increase in app size while using GCM using Play Services as long as you're using Proguard.

Description of The Google Play services client library mentions

The client library has a light footprint if you use ProGuard as part of your build process, so it won't have an adverse impact on your app's file size.

I haven't myself measured the difference in apk with the two different approaches. Will update if I do.

the new GCM method also uses the GcmIntentService where stays the handle configuration for received message and where i configured my sendNotification(msg) method

Check the device to make sure it has the Google Play Services APK. If it doesn't, display a dialog that allows users to download the APK from the Google Play Store or enable it in the device's system settings.

It will save you from project memory size.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top