Цифровой журнал «Компьютерра» № 22 (Журнал «Компьютерра») - страница 48

Но это, впрочем, тема другого разговора.


К оглавлению

В чём секрет многозадачности iOS4

Андрей Письменный

Опубликовано 22 июня 2010 года

У обладателей айфонов и плееров iPod Touch наступил небольшой, но весёлый праздник – день обновления операционной системы. Ритуал, связанный с ним, прост: телефон или плеер положено подключить к компьютеру, найти в iTunes кнопку «check for updates», скачать что-то около трёхсот мегабайт и с затаённым дыханием ждать, пока устройство перезагрузится.

Чем же способна нас порадовать обновлённая ОС? О большинстве нововведений глава Apple Стив Джобс говорил на презентации iOS 4 в апреле 2010 года, затем с новыми подробностями – на июньской WWDC 2010. Основное нововведение – это, конечно, то, что Джобс назвал «многозадачностью», а на самом деле – хитроумный механизм, при помощи которого при переходе из приложения в приложение операционная система продолжает выполнять лишь необходимые задачи, а состояние программы замораживает.

Ввод нововведений неравномерен – не все уже выпущенные телефоны получили новые функции. «Многозадачность», к примеру, доступна лишь начиная с iPhone 3GS и iPod touch третьего поколения, а iPhone 3G и соответствующее поколение «тача» одарено лишь менее значительными новинками: возможностью создавать папки для группирования приложений, функцией смены фонового рисунка на главном экране и прочими мелочами.

Но даже обладатели последних моделей iPhone и iPod touch, скорее всего, окажутся неприятно удивлены после установки обновления. Дело в том, что разрекламированный способ переключаться между приложениями пока что работает вовсе не так, как было показано. Во время демонстрации Стив Джобс показывал, что в любой момент (даже если мы играем в какую-нибудь игру) можно два раза нажать на кнопку «домой» и увидеть список последних запущенных программ. Выбираем любую из них и она моментально возникает перед нами. Проделываем трюк ещё раз, выбрав игру, и продолжаем играть с того же места. Магия!


Но провернуть всё это самому просто-напросто невозможно. Вернувшись в игру пользователь обнаружит, что та запускается точно так же, как запускалась раньше, и вместо того чтобы начать работать с того самого момента, на котором была остановлена, может отобразить стартовое меню. Если, конечно, ранее игра не вела себя по-другому – некоторые разработчики научились самостоятельно заботиться о сохранении и восстановлении состояния своих программ.

Так в чём же дело? Почему даже после обновления на iOS 4 программы продолжают вести себя по-прежнему, а меню для переключения между задачами больше напоминает обыкновенный список последних запущенных приложений? Ответ на этот вопрос становится понятен после знакомства с принципом местной «многозадачности». Вместо того, чтобы позволять приложениям выполняться параллельно, операционная система разрешает приложениям запускать лишь некоторые специальные процессы, которые могут выполняться в фоне. Это может быть, к примеру, воспроизведение музыки, загрузка файла на сервер или недолгое действие, выполняемое перед завершением.