1

В механизмах push-уведомлений, таких как служба Push Notification от Apple, они используют постоянные IP-соединения.Как устойчивые соединения tcp/ip сохраняют батарею и используют более низкую пропускную способность?

Вопрос в том, как использовать постоянные соединения, экономя батарею и пропускную способность устройства? У меня создается впечатление, что, поскольку соединение является постоянным, устройство всегда использует радио WiFi или 3G/LTE.

Я знаю, что через постоянные соединения, вы не будете тратить пропускную способность, не спрашивая сервера для изменения, когда его нет, и вместо того, чтобы сервер будет «толкать» для вас эти изменения. Но я не вижу, как это сохраняет батарею и пропускную способность (поскольку у вас есть постоянное подключение к серверу).

Аналогичный вопрос можно найти здесь:
How does Android C2DM improve bandwidth useage?
, но я думаю, что ответы не являются достаточными.

ответ

0

Способ сохранения срока службы батареи и использования полосы пропускания является немного косвенным. Экономия достигается за счет того, что одна услуга поддерживает постоянное соединение, а не каждое приложение на вашем устройстве, постоянно создавая/уничтожая соединения и постоянно используя пропускную способность.

Например, если у вас есть Facebook, Instagram и Twitter приложения на телефоне, чтобы держать все в актуальном состоянии, вы бы три приложения опроса серверов постоянно изменений.

Решения иметь один сервис прослушивание входящих соединений и имеющий эту услугу уведомляет отдельное приложение, что есть обновления.

0

Прежде всего, вы должны иметь в виду конечный автомат, реализованный устройствами для управления потреблением энергии из-за сетевой связи. Вы можете видеть это here После прочтения вы увидите, что, как сказал Адам, создание соединений очень плохо для вас, срок службы батареи и опроса - это создание/разрушение соединений.

Поэтому C2DM избегает создания подключений для повышения энергопотребления. В итоге сбережение связано с:

  1. Постоянное соединение не означает, что устройство всегда находится в режиме полной мощности. Это означает, что соединение не закрывается, а затем сервер может отправлять сообщения клиенту.
  2. C2DM предоставляет сообщения с различными механизмами, как вы можете читать в GCM Advanced Topics. Следовательно, он может быть настроен для доставки сообщений только тогда, когда устройства уже находятся в состоянии полной мощности.
  3. Последним фактором является то, как GCM доставляет сообщения на устройства бездействия. В официальной документации это совершенно неясно, и я думаю, что исходный код для Службы Google Play недоступен. Тем не менее, вы можете получить некоторые подсказки со следующим ответом here. Первый комментарий кажется полезным.

Есть точка, о которой я не уверен: я не знаю, как они поддерживают связь на низком уровне. Это то, что мне не хватает. Вы можете прочитать Android C2DM слайд 15 для некоторых объяснений. Кажется, что они обеспечивают какую-то умную обработку государственной машины.

 Смежные вопросы

  • Нет связанных вопросов^_^