Is there a way to find out if a given app supports GCM (Google Cloud Messaging)?
As the developer documentation describes, an app needs the permission
com.google.android.c2dm.permission.RECEIVE to receive GCM messages. This shows up in the permissions list as "Receive data from Internet" (which is a little vague, I know).
Of course, the presence of the permission doesn't necessarily mean the app actually will use GCM. Even if it does use GCM, it might not use it for all the uses you think it might use it for: maybe only some kinds of 'refresh' or polling operations can be replaced by GCM uses. And even if it uses GCM fully, in all the ways you'd expect, it's still possible for the app to use more power than it needs to. Using GCM is no guarantee that the app is well-written or efficient.