Ответ 1
Этот ответ обобщается из класса Android Training, Передача данных без сброса батареиобъясняет, как уменьшить время загрузки аккумулятора и сетевых соединений, особенно в отношении беспроводной радио.
В частности Оптимизация загрузок для эффективного доступа к сетиподробно объясняет состояние устройства беспроводной радиосвязи и продолжается объяснить, как должна взаимодействовать ваша модель подключения к приложениям чтобы свести к минимуму утечку аккумулятора.
Оператор беспроводной радиосвязи
Каждый раз, когда вы создаете новое сетевое соединение, радио переходит в состояние полной мощности. Этот переход обычно занимает около 2 секунд, поэтому, чтобы свести к минимуму латентность, радио вводит задержку, чтобы отложить переход к более низким энергетическим состояниям.
Типичное 3G-радио будет оставаться на полную мощность в течение 5 секунд после завершения передачи, прежде чем ждать еще 12 секунд в состоянии низкой энергии, прежде чем переходить в режим ожидания. В общей сложности радио будет потреблять энергию почти 20 секунд при каждом подключении.
Этот подход может привести к неэффективности приложений, работающих на современных ОС смартфонов, где приложения работают как на переднем плане (где важна латентность), так и в фоновом режиме (где время автономной работы должно быть приоритетным).
Решения
Ключом к минимизации эффекта загрузки на вашем аккумуляторе является признание того, что частота передач оказывает более сильное влияние, чем размер загрузок. В практическом плане особенно эффективны предварительная выборка и очередность/комплектация ваших передач.
Зная, что каждый раз, когда вы инициируете соединение, которое потенциально может привести к тому, что радиоприемник будет потреблять энергию в течение почти 20 секунд, важно объединить ваши передачи данных, чтобы вы эффективно переносили фазовый сдвиг, которые должны произойти в течение аналогичного времени чтобы вы передавали как можно больше данных во время каждого сеанса передачи, чтобы свести к минимуму количество сеансов.
Аналогичным образом, предварительная выборка позволяет загружать все данные, которые вам могут понадобиться в течение определенного периода времени в одном пакете, через одно соединение, на полную мощность. Посредством загрузки ваших передач вы уменьшаете количество радиоактиваций, необходимых для загрузки данных, экономя время автономной работы, улучшая латентность, снижая пропускную способность и уменьшая время загрузки.
Однако предварительная выборка также приводит к риску увеличения потребления батареи и использования полосы пропускания путем загрузки данных, которые не используются.
Насколько агрессивно вы выполняете предварительную выборку, зависит от размера загружаемых данных и вероятности их использования. Вообще говоря, хорошей практикой является предварительная выборка данных, так что вам нужно будет запускать другую загрузку каждые 2-5 минут и в порядке от 1 до 5 мегабайт.
Как правило, более эффективно повторно использовать существующие сетевые подключения, а не создавать новые. Повторное использование соединений также позволяет сети более разумно реагировать на проблемы с перегрузкой и связанные с ними сетевые данные.