2013-07-08 4 views
1

У меня есть три устройства для Android, Samsung Galaxy Note 10 и HTC Desire C и Sony Xperia E. Также у меня есть служба, которая прослушивает определенный порт TCP на этих устройствах. Политика WIFI установлена ​​на «Всегда включен» на всех моих устройствах, а моя служба получает WIFI_MODE_FULL и PARTIAL_WAKE_LOCK, поэтому CPU и WIFI всегда находятся там. Через некоторое время, когда я хочу подключиться к этим устройствам с сервера, происходит что-то плохое.Android странное поведение кросс-устройства

  • Устройство Samsung Galaxy Note всегда ведет себя правильно.
  • HTC Desire становится недостижимым
  • В Sony Устройство также недостижим

Я эти устройства Запрос пользователю, чтобы увидеть, если они там или нет. Результаты:

  • Устройство Samsung всегда реагирует на запросы ping немедленно и нормально.
  • HTC и Sony устройства недоступны на некоторое время, и иногда они реагируют, но с очень большой задержкой, даже когда их экран включен (временная колонка ping иногда составляет около 5000 мс).

Я знаю, что есть некоторые проблемы с политикой WIFI:

Но почему время пинг, как это ?? Даже когда экран включен? Кроме того, я знаю, что часы процессора уменьшаются, когда экран выключается, даже если у вас есть блокировка слежения. Может ли это вызвать проблемы в служебном коде, который обрабатывает TCP-соединения?

ответ

1

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

И да, это может вызвать проблемы, и это вызывает проблемы, но это одна из многих причин, по которым вам следует программировать в обороне. Другими словами, убедитесь, что ваше приложение подготовлено к работе с упавшими пакетами и возможными более длительными задержками.

Надеюсь, ваши вопросы были не совсем риторическими, и вы действительно хотели получить ответ.

+0

Но это не отвечает на мой вопрос о том, почему это происходит? из-за изменения частоты процессора? (Или есть другая причина). Может ли частота процессора приводить к неправильной работе кода сервера? – gst

+0

Нет, частота процессора не должна приводить к неправильной работе локального кода сервера. Опять же, я считаю, что это в основном проблема оптимизации экономии батареи. Например, в случае уменьшения тактовых импульсов ЦП при включении экрана, я считаю, что это энергия батареи, которая используется для экрана, который будет отведен от CPU. –

+0

Если это связано с сохранением батареи, почему время ping всегда плохое, даже когда экран включен в устройствах HTC и Sony? Ping - это активность, связанная с IO, и не потребляет процессор, но даже когда экран всегда находится в режиме ping на Xperia, а устройство HTC очень велико! Это странно. Это может быть вызвано режимом буферизации Wifi, но этот режим не должен быть включен в обычных условиях и когда экран включен. В любом случае, спасибо за ваш ответ. – gst

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