В чём секрет многозадачности iOS4 Андрей Письменный
В чём секрет многозадачности 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 программы продолжают вести себя по-прежнему, а меню для переключения между задачами больше напоминает обыкновенный список последних запущенных приложений? Ответ на этот вопрос становится понятен после знакомства с принципом местной «многозадачности». Вместо того, чтобы позволять приложениям выполняться параллельно, операционная система разрешает приложениям запускать лишь некоторые специальные процессы, которые могут выполняться в фоне. Это может быть, к примеру, воспроизведение музыки, загрузка файла на сервер или недолгое действие, выполняемое перед завершением.
В какой-то мере это похоже на кооперативную многозадачность, применявшуюся во времена Windows. 3.1 и классической Mac OS. Этот тип многозадачности подразумевает, что программы исполняются друг за другом в порядке перехода фокуса от одной к другой и самостоятельно заботятся о передаче управления. Покупка компании Nextstep (и повторный найм Стива Джобса на роль исполнительного директора) позволили Apple создать Mac OS X, использующую привычную по современным компьютерам вытесняющую многозадачность.
Увы, вытесняющая многозадачность не очень-то подходит для портативных устройств – её использование грозит излишним энергопотреблением, нагрузкой на центральный процессор и замусоривание флэш-памяти файлами подкачки. К вытесняющей многозадачности приходится добавлять разные ухищрения, позволяющие системе решать, какие приложения менее важны в данный момент, и автоматически понижать приоритет их выполнения.
Похожие уловки применяются в операционной системе Google Android. Она постепенно понижает приоритет неиспользуемой программы, а затем замораживает её состояние. О случаях, когда этого происходить не должно, автор программы должен позаботиться самостоятельно.
В случае iPhone OS разработчик должен заботиться и о сохранении состояния и о его восстановлении. Просто с выходом iOS 4 это делать стало проще, чем раньше, благодаря специальным API. Сложно сказать, почему Стив Джобс обошёл вниманием этот тонкий вопрос. Вероятно, он хотел сосредоточить внимание публики на потенциальных возможностях, а не на проблемах разработчиков. Однако в итоге вышло, что новая ОС работает не так, как ожидалось.
В будущем эта неясность ведёт к ещё более плачевным последствиям. Приложения, уже умеющие сохранять своё состояние и приложения, разработчики которых не поторопятся поддержать новую функцию, будут так или иначе сосуществовать в App Store – хотя бы потому, что некоторые программы просто заброшены и больше не обновляются. Получается, что пользователь не может быть уверен в том, как очередная программа среагирует на закрытие и повторное открытие – сбросится или будет восстановлена с того же места, где её оставили.
Почему нельзя было с самого начала подумать о предотвращении такой ситуации? Заморозка состояния программ работала ещё в старинной Palm OS, причём так, что поддержка была сразу и во всех приложениях. У пользователя никогда не было сомнений в сохранности данных.
Однако если попытаться представить себе, что бы вышло, сделай Apple то же самое, что в своё время было сделано в Palm, то эппловское решение окажется куда более гибким и дальновидным. Дело в том, что Palm OS хоть и сохраняла состояние программ, но не было никакой возможности запустить фоновый процесс — ни для музыки, ни для завершения работы. Если во времена первых Palm сохранять данные могло понадобиться только локально, то теперь программа может захотеть в последний момент загрузить что-то в интернет — к примеру, мессенджер сможет выставить табличку «отошёл», когда пользователь переключится в другую программу.
Хорошо было бы, реализуй Apple такую функцию с самого начала или хотя бы её часть – заморозку состояния. Но такого решения, увы, принято не было. Возможно – по каким-то техническим причинам: местная многозадачность появилась именно с новым поколением устройств, а у них больше оперативной памяти и более мощный процессор. iPhone 3G тем временем еле-еле справляется и с теми приложениями (почтой, браузером и т.п.), которые работали в фоне изначально. Так или иначе, лучше поздно, чем никогда.
К оглавлению
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Вещь дня: фотоаппарат Pentax I-10 Андрей Письменный
Вещь дня: фотоаппарат Pentax I-10 Андрей Письменный Опубликовано 29 июля 2010 года Первая мысль, приходящая в голову при виде этого фотоаппарата — «ой, какая маленькая и симпатичная штучка!». Скорее всего, дизайнеры, работавшие над его наружностью
Как спасти Microsoft Андрей Письменный
Как спасти Microsoft Андрей Письменный Опубликовано 11 августа 2010 года За последние десять лет в Microsoft создали много хорошего, хотя и глупостей наделали порядочно. С финансами у корпорации всё в порядке, и хоть она пока не теряет деньги, с каждым провалом
"Нивал" и 1С о выставке E3 2010 Андрей Письменный
"Нивал" и 1С о выставке E3 2010 Андрей Письменный Опубликовано 22 июня 2010 года На игровой выставке E3 2010 было объявлено несколько интереснейших проектов, среди которых – новый Xbox 360 и Microsoft Kinect, Nintendo 3DS, а также множество игр. Представители российских
Софт: ABBYY Lingvo для Mac OS X Андрей Письменный
Софт: ABBYY Lingvo для Mac OS X Андрей Письменный Опубликовано 16 августа 2010 года Компания ABBYY начала продажи версии словаря Lingvo для операционной системы Mac OS X. Программа включает 125 словарей для шести языков: английского, французского, немецкого,
Microsoft: что пошло не так Андрей Письменный
Microsoft: что пошло не так Андрей Письменный Опубликовано 05 июля 2010 года В 2007 году эссе Пола Грэма о том, что «Microsoft мертва» наделало немало шума. Может показаться, что он ошибался, ведь компания и по сей день вполне жива и весьма прибыльна, но Грэм имел в
Последнее китайское предупреждение Андрей Письменный
Последнее китайское предупреждение Андрей Письменный Конфликт между Google и китайскими властями подходит к своему логическому завершению. Лицензия на работу поисковика в Китае истекает, и если ни одна из сторон не пойдёт на попятную, то китайское подразделение Google
Карманные магазины Андрей Письменный
Карманные магазины Андрей Письменный Телефоны Nokia, Google, Microsoft и Samsung вслед за iPhone обзавелись встроенными магазинами приложений. С одной стороны, такие магазины выгодны и для пользователей, и для разработчиков. С другой — они ограничивают возможности
Окажется ли в плюсе Google+ Андрей Письменный
Окажется ли в плюсе Google+ Андрей Письменный Опубликовано 08 июля 2011 года Ещё недавно слова Google и «социальные сети», встреченные в одном предложении, вызывали улыбку. Слишком уж часто эта компания делала неловкие попытки запустить собственную
Пиратский клаудкомпьютинг Андрей Письменный
Пиратский клаудкомпьютинг Андрей Письменный Опубликовано 11 мая 2010 года Технология BitTorrent, изначально предназначенная для разделения нагрузки при скачивании файла, ныне широко востребована пиратами. Но создатели BitTorrent в своё время решили не
Первый взгляд на Nokia N8 Андрей Письменный
Первый взгляд на Nokia N8 Андрей Письменный Опубликовано 02 августа 2010 года Компания Nokia готовится осенью 2010 года начать продажи телефона Nokia N8 — первого смартфона на платформе Symbian^3. В отличие от прошлогоднего N97, у этого телефона не будет клавиатуры —
В чём Blekko превосходит Google? Андрей Письменный
В чём Blekko превосходит Google? Андрей Письменный Опубликовано 18 ноября 2010 года Обычно поисковые машины гордятся своим умением разбираться в любом бардаке — это относится и к индексированию сайтов и, отчасти — к интерпретации запросов. Чего только не
E3 2010: Десятка лучших игр Андрей Письменный
E3 2010: Десятка лучших игр Андрей Письменный Опубликовано 16 июня 2010 года The Legend of Zelda: Skyward Sword Приключенческий экшен-сериал The Legend of Zelda не останется без продолжения, пообещал легендарный гейм-дизайнер Cигеру Миямото. Выступая на
За детьми присмотрит робот Андрей Письменный
За детьми присмотрит робот Андрей Письменный ОпубликованоАндрей Письменный Московский Городской Педагогический Университет ассоциируется с конструированием роботов в последнюю очередь. Тем не менее, именно здесь создан проект, занявший второе
Yota переходит c WiMAX на LTE Андрей Письменный
Yota переходит c WiMAX на LTE Андрей Письменный Опубликовано 25 мая 2010 года Компания Yota («Скартел») недавно объявила о том, что получила разрешение на использование стандарта беспроводной связи четвёртого поколения LTE на территории России. Ожидается, что
Что будет на WWDC 2010 Андрей Письменный
Что будет на WWDC 2010 Андрей Письменный Опубликовано 26 мая 2010 года Каждый июнь компания Apple устраивает мероприятие для разработчиков – WWDC. На нём глава компании Стив Джобс обычно показывает новинки, а в течение следующей недели авторы программ могут