Андроид снижает скорость загрузки при выключении экрана? - PullRequest
10 голосов
/ 03 октября 2011

Я заметил, что я могу загрузить файл быстрее, если я использую wget с экраном в приложении , которое получает блокировку затемнения экрана , чем при использовании этого приложения безэкран выключен .. Я скачал точно такой же файл (с моего веб-сервера apache), и время почти в два раза быстрее, когда я использовал экран в приложении.Для загрузки файла я использую портированные версии wget .. И вот мой вопрос:

Понижает ли Android скорость загрузки при выключении экрана?

Или из-за того, что экран в приложении получает блокировку от пробуждения, заставляет процессор быть всегда включенным, поэтому больше циклов ЦП тратится на процесс загрузки ... Я немного запутался ..

1 Ответ

13 голосов
/ 15 октября 2011

Краткий ответ: да , Android иногда снижает скорость загрузки при выключении экрана.Согласно этому отчету об ошибках Android (его отметили 90 пользователей),

Кажется, что даже если для "Wifi Sleep Policy" установлено значение "Never", Wi-Fi на некоторых Androidустройства перейдут в режим энергосбережения (он же режим PSP), когда экран выключится.

Режим PSP, по-видимому, приводит к тому, что устройство wifi переходит в спящий режим, но периодически просыпается и запрашивает у своей точки доступа доставку пакетов, адресованныхустройство пока оно спало.Это обязательно вызывает дополнительную «колючую» задержку сети.Эта дополнительная задержка означает, что некоторые сетевые приложения испытывают проблемы при выключении экрана.

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

Как решить эту проблему

Существует обходной путь для Android 2.3 по крайней мере: Вам необходимо приобрести WIFI_MODE_HIGH_PERF lock :

В этом режиме блокировки Wi-Fi Wi-Fi будет оставаться активным, как в режиме WIFI_MODE_FULL, но он работает с высокой производительностью с минимальной потерей пакетов и низкой задержкой пакетовдаже когда экран устройства выключен.Этот режим потребляет больше энергии и, следовательно, должен использоваться только тогда, когда необходимо такое активное соединение.

Масштабирование тактовой частоты процессора в Android

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

Однако я не думаю, что сетевой трафик телефона ограничен ЦП.То есть даже в безопасном режиме пропускная способность сети является узким местом, а не скоростью процессора.

...