Russian subtitles

← 05-09 Network_and_Battery_Drain

05-09 Network_and_Battery_Drain

Get Embed Code
13 Languages

Showing Revision 5 created 12/31/2015 by Natalia Savvidi.

  1. Давайте потратим немного времени,
    чтобы прояснить один момент.
  2. Для аккумулятора работа в сети —
    самый большой, злой и страшный враг.
  3. Вы знаете, что внутри вашего телефона
    есть крохотное устройство,
  4. в реальности представляющее
    собой радиоприемник.
  5. Его задача — соединяться
    с местными вышками мобильной связи
  6. и передавать им большие объемы данных.
  7. Хитрость в том, что этот датчик
    не всегда активен.
  8. После того, как вы отправили данные,
    приемник продолжает работать
  9. какое-то время на случай появления ответа
    с сервера, которого он ожидает.
  10. Если активность отсутствует,
    оборудование отключится,
  11. чтобы сохранить заряд аккумулятора.
  12. Как мы уже знаем, происходит сильный
    скачок в работе аккумулятора,
  13. когда чип включается в первый раз,
    и пока он включен для ожидания ответов,
  14. он продолжает использовать
    ресурсы аккумулятора.
  15. Важно подчеркнуть,
    что существует два способа,
  16. используемых большинством приложений
    для связи с радио.
  17. В первую очередь есть события,
    которые должны произойти
  18. именно в данный момент.
  19. Эти события являются результатом
    определенного действия пользователя
  20. или созданы необходимостью
    срочно обновить вид вашего приложения.
  21. Например, представьте, что пользователь
    просит загрузить новую порцию твитов
  22. с модным хештегом.
  23. Это действие инициировал пользователь,
    поэтому приложение должно быстро ответить.
  24. С другой стороны, все работы с сетью,
    которые необязательно должны происходить
  25. в срочном режиме,
    например загрузка данных пользователя,
  26. синхронизация фоновой статистики
    или уменьшение фото для соцсетей.
  27. То есть первая группа заданий
    должна быть выполнена сразу же,
  28. чтобы предоставить ответ пользователю,
    вторую можно отложить
  29. и выполнить в режиме
    эффективного использования аккумулятора.
  30. Высока вероятность того,
    что большинство сетевых запросов
  31. в вашем приложении
    относятся ко второй категории.
  32. Изменение сетевых задач
    для более эффективного выполнения —
  33. процесс из двух шагов.
  34. В первую очередь посмотрите

  35. на строку мобильного радио
  36. в истории аккумулятора
    по вашему приложению.
  37. Красные полосы здесь отражают
    периоды активности мобильного радио,
  38. любые промежутки между ними —
    работу радио в спящем режиме.
  39. Если вы видите много узких полос
    и промежутков между ними, возможно,
  40. у вас есть проблемы с производительностью,
  41. так как это свидетельство
    множества циклов сна и пробуждения.
  42. Ваша же цель — большие промежутки
    с длительными блоками активности.
  43. Так вы сократите затраты ресурсов,
    минимизируя число сетевых запросов,
  44. и, возможно,
    не будете использовать радио совсем.
  45. Я имею в виду, что можно подождать,
    когда телефон подключится к Wi-Fi,
  46. позволив устройствам выполнить всю работу
    с меньшим расходом аккумулятора.
  47. Написание кода специально
    для групп и кеша,
  48. откладывание этих сетевых запросов
    действительно сложно выполнить,
  49. именно поэтому мы сделали все это за вас.
  50. Приложение JobScheduler API,
    выпущенное с релизом L Android,
  51. предлагает полный комплект API,
    управляющий сетевыми запросами
  52. и многим другим, если вы захотите.
  53. Но вместо того, чтобы слушать
    мой рассказ об этом потрясающем API,
  54. ощутите все его преимущества
    прямо сейчас на практике.