Have you looked at the Google GCM Architectural Overview here: http://developer.android.com/guide/google/gcm/gcm.html ?
ID_ Register is created by the Google GCM server and returned to you. This is per device per app. Therefore, if you manage 2 applications, and the device installs both of them, each application will receive its own unique registration_id.
Google GCM cannot be used for iOS, for this you need to go through the Apple notification server. And I believe that they have the same architecture, that is, one unique identifier for each device on the device.
source share