Как работает многозадачность в iOS: мифы и реальность

Существует миф про многозадачность в операционной системе iOS, который звучит следующим образом: «приложения в панели многозадачности на iPhone или iPad активные и замедляют работу, забивая память устройства или расходуя заряд аккумулятора». Знатоки дела советуют для улучшения производительности и увеличения времени автономной работы iOS-устройства удалять вручную эти самые приложения.

Разработчик Фрейзер Спейрс решил опровергнуть это заявление. По словам эксперта, панель многозадачности в iOS не содержит «списка запущенных приложений». В апп-свитечере находится лишь список последних запущенных программ.

Apple разработала уникальную операционную систему, основную на настольной Mac OS X. В iOS пользователю не нужно управлять фоновыми процессами. Когда вы нажимаете кнопку Домой, система почти во всех случаях заставляет приложение выйти и прекратить использование ресурсов процессора, а память, которую оно занимало, со временем освобождается.

Спейрс пишет, что всего у программ в iOS есть 5 типов состояний:

  1. Нерабочее — работа приложения была прекращена или оно не было запущено.
  2. Неактивное — приложение в активном режиме, но не получает событий (например, пользователь заблокировал экран).
  3. Активное — нормальное состояние приложения в режиме использования.
  4. Фоновое — приложение скрыто, но исполняет код.
  5. Приостановленное — приложение находится в памяти, но не исполняет код.

Активное и неактивное для данной темы неинтересны. Большинство путается в ситуациях, когда приложение переходит из активного в Фоновое, потом в Приостановленное, а затем в Нерабочее.
Когда вы нажимаете кнопку Домой, программа переходит из Активного в Фоновое. Большинство приложений через нескольких секунд сразу переходят в Приостановленное. Первый технический нюанс заключается в том, что Приостановленное приложение остается в памяти устройства. Это сделано для того, чтобы оно могло продолжить работу быстрее, если вы решите к нему вернуться, однако оно не использует процессор и батарею.

Вы можете предположить, что если ПО находится в памяти, вам нужно его как-то удалить оттуда для освобождения ресурсов. Вам не нужно этого делать, потому что iOS делает это за вас. Если у вас есть Приостановленное приложение и вы запускаете ресурсоемкий софт, например игру, iOS самостоятельно выгружает Приостановленную программу и перемещает ее в Нерабочее состояние. Другими словами она будет полностью удалена из памяти и запущена с нуля при следующем запуске.

Панель многозадачности показывает лишь список недавно использованных приложений, вне зависимости от того, в каком состоянии они находятся.

Когда приложение отправляется в Фоновый режим работы, оно как правило переходит в Приостановленное состояние через несколько секунд. Однако приложение может запросить увеличение этого периода, заявив, что запускает «фоновую задачу», например, загружает большой файл из Интернета. Однако даже в этом случае у программы есть всего 10 минут на работу в фоновом режиме. Затем она насильно приостанавливается.

Существуют всего 5 типов приложений, которые могут работать в фоновом режиме дольше:

  • Аудиопроигрыватели (например, Instacast).
  • Автомобильные Навигаторы (например TomTom).
  • Приложения для VoIP-связи (например, Skype).
  • Киоск (загрузка журналов).
  • Приложения, которые получают обновления от внешних аксессуаров.

Есть несколько встроенных приложений, которые также постоянно работают в фоновом режиме – наиболее часто используемым, наверно, является Mail.

До тех пор, пока эти приложения находятся в Фоновом состоянии, они потребляют память, ресурсы процессора и аккумулятора. Однако пользователь как правило знает об этих процессах. Разработчик таких приложений должен уведомить вас, какой вид Фоновой задачи будет исполняться и часть работы «цензоров» в онлайн-магазине App Store заключается в том, чтобы проверить, чтобы эти технологии использовались разумно.

Таким образом, вам не нужно управлять фоновыми задачами в iOS. Система сама справляется практически со всеми ситуациями за вас, и правильно написанные аудиоприложения, GPS-навигаторы, VoIP-программы и аксессуарные приложения тоже разберутся сами.

Источник: MacDigger.ru

Следите за новостями Apple в нашем Telegram-канале, а также в приложении MacDigger на iOS.

Присоединяйтесь к нам в Twitter, ВКонтакте, Facebook, или через RSS, чтобы быть в курсе последних новостей из мира Apple, Microsoft и Google.


29 комментариев

  • А я все время закрывал приложения в ручную! Теперь уже не буду морочиться :-)
  • Анатолий 7 лет назад
    0
    Здорово. Но тут уже психология. Если видишь значок в диспетчере, кажется что оно ест ресурсы. Привычка:) Сам не могу себя заставить просто забыть про эти приложения, тем более оперативной памяти в iPhone 4 и 4S достаточно для всего. А вот беру и закрываю все периодически, психология:)
    • смотря какие приложения, которые в фоне все же работают - они и память едят и батарею... например скайп, ася, почта...
  • Всегда знал что iOS продуманный софт и многозадачность тому пример, никогда не верил в слухи что все что в строке многозадачности - работает и ест ресурсы. Именно поэтому не запаривался о закрытии программ.
  • А у меня привычка от андроида осталась убивать процессы))!
    • Странная привычка. Принцип многозадачности в андройд, описывается другими словами, но если обобщить он точно такой же.
  • сомнительно это, попробоуйте запустить много разных программ, начнет тормозит
  • Неправда, возьмите любое приложение которое показывает размер свободной памяти, не закрывайте его, два раза на "домой" и в панели многозадачности убивайте ранее запущенные - увидите воочию как освобождается память.
  • а почему тогда не сделать, чтобы приложения перешедшие в состояние нерабочее сами не удалялись из строки многозадачности? или так оно и есть? а то через несоклько дней посмотришь туда, а там на 3-4 экрана приложений висит
    • В строке многозадачности висят не запущенные, а воощбе все последние проги, ктотрые запускались.
  • Если закрыть музыку в многозадачности, то она закрывается. При закрытии, настройки открываются с самого начала, а не на последнем открытом месте. Где логика? Закрывайте приложения, не поддавайтесь на провокации.
  • да ну фигня. Попробуйте открыть кучу приложений и свернуть и включить отображение оперативы в SBSettings, будет свободно максимум 20 мегабайт. Когда все удалишь - 320 метров свободно. Может она и приостанавливается, но оперативу жрет собака и влияет на проивзодительность.
  • у меня 4с, проверял эти методы, запустил мощные игрухи(ИнфБлейд2б рилРейсинг и тд), несколько прог ... выхожу в меню.. ожидаю несколько мин.. запускаю чтото новое..и опля выбивает.. убиваю процессы.. запускаю, то что вылетало, но теперь то оно работает... так что чтото недоработано
  • в статье логика вроде как есть, но по опыту, у жены когда начинает подтормаживаеть 3GS, просто закрываешь все приложения из панели многозадачности и все норм становится (причем они были свернуты уже несколько часов назад) на четверке тормозов нет, но все равно просто не нравится когда там туча всего. поддерживаю того, кто предложил, чтобы значки сами удалялись при прошествии например 48ч как закрывал, так и буду закрывать
    • Я бы предложил не 48 часов, а настраиваемое поле, мне например больше 3-х часов не нужно, я просто про него забыл
  • Я считаю, что это вранье! или недочёт, как минимум! У меня на 4ке Инф.Блейд был запущен всю ночь (играл и забыл выгрузить) - просто нажал ХОУМ и лёг спать, так за ночь, 30% аккума сьело! - ВОПРОС - куда они делись? (EDGE & WiFi выключены были и все проги были не запущены)... и на заряде оставалось 80% когда закончил игру! так что я считаю, что это всё бред! Уверен, что как минимум ресурсоёмких приложений данная теория не касается это точно!
  • Нихера подобного! У меня 3гс 5.0.1 когда в панеле висят несколько приложений то когда мне заонят скажем в одноклассники, я не могу ответить на звонок, выходит уведомление что не достаточно мамяти для работы приложения... Так что не все так идеально как кажется!
  • евгений 7 лет назад
    0
    Яндекс карты страшный монстр, все время жрет батарею, после каждого использования приходится выгружать вручную. Иногда даже телефон жутко нагревается.
  • я обладаль 3Gs потом 4ка и теперь 4S ... опыт не мал, с уверенностью скажу что никогда не закрывал, нет вру закрывал первые 2 мес, по привычке от симбиана где за ночь аська сьедала акуму! Запущенные программы ничего не потребляют... 5% акумы за ночь как садилось так и садится! к примеру скайп можно настроить так что бы он совсем не выгружался! и тогда расход немного повышается но немного! я так было дело забыл о скайпе и мне в 9 утра, в вых кто то написал! а приложение запущено было 2 дня! так что ребята все это правда! если акума садится быстрее, значит проблемма либо в конкретной прошивке(Джейлбрейк дополнениях) либо ваш акум износился ))) в остальном IOS все делает как надо)
    • Не скажи - ты iOS 5 пробовал? Нет? В пятой версии аккумулятор садится как поджаренный, типа у меня 200 программ запущено, но, откатившись на четвёрку, аккум снова стал работать нормально. Ставлю тебе +, ведь рассуждаешь верно, прав ведь.
  • я точно знаю что у меня в фоне работает даже если закрыты. вот которые действительно могут кушать оперативку это те у который включены уведомления, в моем случае обновление почты, im и контакт
  • Привычка, привитая Виндой, отразилась и на общении с iOS. Всегда снимаю все лишние процессы, убираю всё лишнее из msconfig и реестра. Только жизненно необходимые процессы.
  • Конечно есть зависимость между количеством программ в этой строке и быстродействием, и мы это заметили. Я их одним кликом закрываю, через функцию kill apps в bbsetting.
  • Кароче как небыло многозадачночти в IOS так как таковой ее там и нет
  • Александр 7 лет назад
    0
    Меня вот страшно бесит как раз обратная ситуация - когда после переключения с приложения оно перестаёт работать, а не продолжает работать в фоне. В итоге для выполнения задач, которые логично было бы выполнять в фоне, приходится держать приложение на переднем плане. Пример - обновление документов в справочно-правовой системе Право.ru, которое может идти очень долго, но при переключении на другие программы приостанавливается.
  • Не согласен с автором статьи! Имею первый ipad с 5.0.1 Ситуация: были запущены: журнал из киоска, сафари, маил, angry Birds, все они были в "панели многозадачности". После этого запустил автокад и открыл один из проектов, во время загрузки, айпад сказал, что ему не хватает памяти. После чего были убиты все приложения в панели многозадачкости в том числе и автокад. Снова запустил автокад и загрузил тот же проект, проблем с памятью больше не было.
  • мда.....какой тогда смысл в многозадачности, если реально приложения не сворачиваются, а просто закрываются??!! очередной эпловский бред....
  • Мда...