Intereting Posts
Не удалось исправить ошибку Android Proguard с ошибкой 1 ошибка Android: что заменило android.support.v4.app.NavUtils в более поздних API? Как добавить EditText в DialogFragment? Как показать маркеры все время с помощью AsyncTask или Handler в google map version 2 Использование старого токена для запроса Buy Purchases.subscriptions в API разработчика Google Play Как создать apklib для проекта non maven Получить идентификатор календаря по умолчанию в Android Android и настройка альфа для (изображения) вида альфа Внедрение onShowCustomView на Android 3.1 исключает исключение в HTML5VideoFullScreen Использование Карт Google и карт Baidu в одном приложении Шифрование sqlite для Android Не удалось найти конструктор андроида NDK r9 для mac Android EditText («Текстовое поле»): автоматическая заливка первой буквы каждого слова во время ввода пользователем Как перебросить исключение Как я могу (и привязывать) удаленный сервис в 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 , лучший способ определить утечку – использовать новый индикатор использования батареи. Просто установите свое приложение и посмотрите, что говорит монитор со временем.