Да, Android поддерживает одно активное соединение с серверами Google, но не использует много энергии или данных, потому что по нему не передается трафик, пока что-то не отправит сообщение GCM в приложение на вашем телефоне. На телефоне есть только одно соединение, используемое всеми приложениями: установка нового приложения, использующего GCM, не добавляет дополнительной нагрузки.
Первый шаг в GCM заключается в том, что сторонний сервер (например, сервер электронной почты) отправляет запрос на сервер GCM Google. Затем этот сервер отправляет сообщение на ваше устройство через это открытое соединение. Система Android просматривает сообщение, чтобы определить, для какого приложения оно предназначено, и запускает это приложение. Приложение должно быть зарегистрировано в Android, чтобы использовать GCM, и оно должно иметь соответствующее разрешение. Когда приложение запускается, оно может сразу создать уведомление с данными из сообщения. Размер сообщений GCM очень ограничен, поэтому приложение может вместо этого открыть обычное соединение со сторонним сервером для получения дополнительной информации (например, загрузки заголовков новых писем).
Преимущество использования push-уведомлений заключается в том, что приложения не должны запускаться через регулярные промежутки времени для проверки новых данных, что экономит как энергию, так и данные. Преимущество наличия централизованного механизма, такого как GCM, состоит в том, что устройству требуется только одно открытое сетевое соединение, и единственной вещью, которая должна работать, является система Android GCM, а не каждое приложение, работающее в фоновом режиме для поддержания собственной сети. подключение к собственному серверу.