Intereting Posts
Перенос файлов с устройства Android WPD на ПК Добавьте верхний / нижний колонтитул в список в xml Android – Как получить текущее местоположение (широта и долгота)? Может ли телефон притворяться клавиатурой Bluetooth? Ошибка Eclipse: R не может быть разрешено переменной Multi-touch кросс-платформенный Java-приложение (Windows, Mac и Linux (Ubuntu) (возможно, Android)) Как открыть PDF-файл в приложении для Android и разрешить пользователям использовать встроенные гиперссылки? Использование android.support.v7.widget.CardView в моем проекте (Eclipse) Как увеличить интервал между абзацами в текстовом виде Wifi Connect-Disconnect Listener Динамически сгенерированная линия с эффектом свечения Ошибка SSL SSL HttpGet (без сертификата партнера) ИЛИ (соединение закрыто одноранговым) Различать тайм-аут экрана и нажатия кнопки питания? Как найти последнюю активность, с которой текущая активность открывается в android? Добавить слова в Android-словарь Android

Долгое постоянное TCP-соединение на Android

Я прочитал некоторые статьи в Интернете и некоторые вопросы о StackOverFlow, но никто не имеет определенного ответа: a) если Google использует Long Lived TCP-соединения для Gmail, Mail и т. Д.), Если вы используете его в пользовательском приложении Будет истощать срок службы батареи, и если это примерно так?

Solutions Collecting From Web of "Долгое постоянное TCP-соединение на Android"

Ответ на ваш первый вопрос заключается в том, что, да, GTalkService Google поддерживает постоянное соединение XMPP с серверами Google на телефонах Android с установленными приложениями Google.

Что касается вашего второго вопроса, ответ на этот вопрос более сложный, чем некоторые из комментариев здесь, если бы вы верили. В частности, пакеты keepalive дополнительных подключений – или любые небольшие, но постоянно происходящие передачи данных – могут повлиять на ваш цикл управления питанием 3G-радио, что будет иметь заметное влияние на срок службы батареи.

См. Эту статью для получения дополнительной информации:

https://labs.ericsson.com/developer-community/blog/smartphone-traffic-impact-battery-and-networks

Если возможно, вы можете использовать новый API для обмена сообщениями Cloud to Device, который копирует поверх GTalkService, позволяя вашему приложению получать уведомления без сохранения собственного TCP-соединения. Недостатком, к сожалению, является то, что C2DM не будет работать на чистом Android с открытым исходным кодом, он требует, чтобы пользователь был подписан в свою учетную запись Google, и он доступен только на Froyo или выше.

Поддержание открытого соединения может привести к меньшему использованию ресурсов: небольшой трафик «струйки» может поддерживать открытое соединение.

Рассмотрим обратную ситуацию: клиент «опроса» сервера на регулярном интервале (предполагайте ту же «обновленную» скорость, что и для долгоживущего соединения «trickle»): каждый раз, когда новое соединение открывается, генерируется больше трафика.

Настройка соединения / срыв дороги (конечно, все относительно в этой вселенной ;-).


Основные недостатки в поддержании открытого соединения:

  • Браузер клиентской стороны может быть ограничен количеством подключений на окно / вкладку и т. Д.
  • Промежуточные устройства (например, NAT, межсетевые экраны) не могут повторно использовать порт так часто, чтобы обслуживать другие запросы
  1. Вы можете использовать инструмент, например tcpdump или wireshark на вашем маршрутизаторе или другом компьютере, чтобы определить, как долго TCP-соединения будут оставаться открытыми приложениями Google. Вам нужно будет фильтровать по портам или адресам, которые вас интересуют.
  2. Если вы используете Android 1.6 , лучший способ определить утечку – использовать новый индикатор использования батареи. Просто установите свое приложение и посмотрите, что говорит монитор со временем.