Оглавление:
Каждый раз, когда программное обеспечение на наших телефонах получает большое обновление, мы слышим, как оно будет работать лучше и потреблять меньше нашей батареи. Хотя это часто так, идеи и способы их реализации нуждаются во множестве изменений, чтобы соответствовать ожиданиям. Android 7.0 улучшает две существующие функции, чтобы помочь им полностью реализовать свой потенциал: Projects Doze и Project Svelte.
Цели просты - найти способы сделать телефон менее энергоемким, когда вы его не используете, и улучшить управление фоновыми процессами. Все программное обеспечение построено с акцентом на производительность и эффективность, а операционная система - в гораздо большей степени. Мы посмотрим на изменения и посмотрим, как они могут оказать влияние.
Проект Свелте
Project Svelte появился в 2013 году с выпуском Android 4.4 KitKat в качестве способа повышения производительности ОС на младших телефонах. На этом фронте это действительно удалось, но мы ожидали больших изменений, чем получили. Чтобы получить представление о первоначальных намерениях Svelte, загляните в Android One. Цель состояла в том, чтобы создать недорогое аппаратное обеспечение, которое достаточно хорошо работает с последней версией Android.
С Android 7.0 проект продолжает сокращать влияние на производительность, имея еще лучшую систему для управления фоновыми процессами.
Изменения в Svelte решают две конкретные и важные проблемы, которые заставляют приложения работать в фоновом режиме
Android сильно отличается от iOS. Любой разработчик может заплатить очень небольшую плату и опубликовать приложение в Google Play вместе с такими именами, как Facebook или Samsung. При условии, что в приложении нет вредоносного кода, оно будет доступно для установки всем, и если о нем не сообщат о несоответствующем контенте или действиях, которые ему придется приостановить (хотя Google заявляет, что оно выполняет автоматическую проверку каждого приложения перед его выпуском). Это далеко от того, что каждое представленное приложение проходит через процесс одобрения вручную, и это означает, что приложения не отклоняются, потому что они не следуют передовым методам разработки. Поведение некоторых из существующих API не помогает, и даже лучшие приложения могут проснуться и использовать ресурсы слишком часто из-за ошибочного процесса.
Улучшения Svelte в Android Nougat исправляют две явные проблемы:
- Приложения проверяют, изменяется ли сеть с помощью так называемого широковещательного приемника. Когда происходит изменение, каждое приложение, прослушивающее изменение с помощью метода по умолчанию, просыпается одновременно и пытается обработать данные об изменении. Подумайте, как работает ваш телефон при первом запуске, и все пытается произойти одновременно, и вы иметь представление о том, почему это нуждается в некотором улучшении. Ориентированные на Android 7.0, приложения могут прослушивать изменения сети только через главный поток (который запускается, когда приложение активируется, и вы его используете), поэтому они не просыпаются при каждом переключении сетей. Это потребует меньше оперативной памяти и процессорного времени, что означает, что наши телефоны будут работать лучше и потреблять меньше энергии.
- В предыдущих версиях Android приложения могли прослушивать на похожем вещательном приемнике изображение или видео, которое нужно сделать. Когда это происходило, каждое приложение, которое слушало, просыпалось и пыталось обработать данные сразу. Как и выше, это не очень хорошо с точки зрения производительности. В Android 7.0 новое изображение и новые видеотрансляции не могут быть отправлены. Это означает, что даже если разработчики не обновят существующие приложения, им никогда не будет приказано проснуться, когда будет сделана фотография или видео.
Чтобы приложения делали то, что мы от них хотим, они должны оставаться в живых. Уменьшение того, что они делают, пока они тихо ждут, чтобы снова стать активным, устраняя ненужные функции, означает, что меньше приложений будет работать вместо сна, когда они отправляются в фоновый режим.
Project Doze
То, как все работает сейчас, вы либо любите Doze, либо не видите, что Doze делает что-то заметное на вашем телефоне. Это из-за того, как это работает.
Когда Doze дебютировал в Android 6.0, его целью было отсрочить загрузку процессора и сети, когда экран вашего телефона был выключен, отключен от сети и неподвижен. Если все три критерия не будут выполнены, Doze не сработает, и приложения продолжат работать в обычном режиме. Это прекрасно работало в офисе и на рабочем столе, но как только оно вошло в ваш карман, Дозе перестало что-либо делать, и преимущества прекратились.
Двухэтапная доза позволяет вашему телефону меньше расходовать заряд батареи
Изменить поведение в Android Nougat просто. Теперь режим Doze состоит из двух этапов: один - когда экран выключен, а телефон отключен, а другой - когда телефон также неподвижен.
Когда ваш телефон работает только от батареи, а экран был выключен в течение заданного времени, приложения прекратят прямой доступ к сети, а действия, такие как синхронизация и другие задания, будут отложены до истечения заранее определенного количества времени. Затем короткое окно обслуживания позволяет им выполнять обычные фоновые функции. Эта часть работает, когда ваш телефон находится в вашем кармане или подвергается другим формам движения.
Когда телефон также работает в течение определенного периода времени, все ограничения Doze - дополнительные вещи, такие как приложения, просыпающиеся в фоновом режиме или прослушивание так называемой тревоги (не та, которая будит вас утром, они не затрагиваются) или ищем текущее местоположение - накладываемся поверх сети и отсрочки работы. Окно техобслуживания по-прежнему регулярно появляется, но между этими окнами ваш телефон едва жив и мало что делает, пока вы его не поднимите.
Мы знаем, насколько хорошо работает Doze (когда он не был изменен людьми, создавшими ваш телефон), пока телефон работает. Теперь мы также увидим выгоду, когда мы на подъеме и в движении.
Будут ли изменения в Svelte и Doze исправлять все проблемы с производительностью и батареями? Ответ, конечно, нет. Но эти изменения являются логическими шагами, которые касаются двух очень специфических вещей, которые необходимо было решить. результат окажется лучше, чем у нас сейчас, даже если он не может решить все проблемы.