Как технология push-уведомлений работает на Android?

Как Google внедрила функцию push-уведомления? Работает ли он посредством опроса, выполняемого службой, работающей в фоновом режиме или по-другому?

Из того, что я слышал на конференции разработчиков Android в Израиле:

Существует просто TCP-сокет, ожидающий в режиме приема на облачном сервере Google. TCP-соединение было инициировано приложением Google Play. Вот почему Google Play должен быть установлен на устройстве для использования облачных сообщений Google (GCM) (ранее это приложение Android Cloud для службы обмена сообщениями – C2DM ).

Когда это клиентское сокет TCP получает какое-то сообщение, сообщение содержит информацию, такую ​​как имя пакета приложения, к которому он должен быть адресован, и, конечно же, данные. Эти данные анализируются и упаковываются в намерение , которое транслируется и в конечном итоге принимается приложением.

Сокет TCP остается открытым, даже когда состояние радиостанции устройства переходит в режим ожидания. Приложения не должны запускаться для получения намерений.

Дополнительная информация доступна по адресу http://developer.android.com/google/gcm/gcm.html.

Android поддерживает одно активное подключение к серверам Google, но он не использует много энергии или данных, поскольку на нем не отправляется трафик, пока что-то не отправит сообщение GCM в приложение на вашем телефоне. В телефоне используется только одно соединение, используемое всеми приложениями: установка нового приложения, использующего GCM, не добавляет дополнительной нагрузки.

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

Преимущество использования push-уведомлений заключается в том, что приложениям не нужно запускать с регулярными интервалами, чтобы проверять новые данные, сохраняя как мощность, так и данные. Преимущество наличия централизованного механизма, такого как GCM, заключается в том, что устройству требуется только одно открытое сетевое соединение, а система Android GCM – это единственное, что нужно продолжать работать, вместо того чтобы каждое приложение должно было работать в фоновом режиме, чтобы сохранить свою собственную сеть Соединение с собственным сервером.

Взял это от: Источник Также см. Здесь .

Вы можете реализовать push-уведомление на android самостоятельно с длинным подключением tcp для опроса. Но это будет связано с поддержанием дополнительного разъема => разряда батареи. Или вы можете открывать соединение через регулярные промежутки времени с помощью диспетчера аварийных сигналов.

Google, вероятно, открывает один сокет для всех push-уведомлений C2DM, следовательно, он более эффективен для батареи.

Да, ты прав. У Google была услуга (служба GTalk), и эта служба в некоторые периоды времени запрашивала серверы Google.

Intereting Posts