Все, что вы хотели знать про многозадачность в iPhone OS 4.0

В четверг 8 апреля Apple на специальной презентации показала семь «столпов» новой системы iPhone OS 4.0, из которых долгожданная многозадачность занимает, пожалуй, центральное место.

Реализована она в исполнении Apple очень изящно и даже элегантно. Компания отказалась от стандартного пути, когда приложение целиком «висит» в оперативной памяти и попутно отъедает еще и ресурсы процессора. Вместо этого мы увидели появление в iPhone OS «демонов» и хитрой системы переключения между задачами.

«Многозадачность очень просто реализовать таким образом, что она начнет высасывать батарею устройства до самого дна. Ее легко добиться за счет снижения производительности, что сделает телефон «тормознутым», заявил во время презентации Стив Джобс. «Мы же придумали как достичь многозадачности и избежать всех этих вещей».

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

Так вот, когда Apple говорит о том, что она добавила в iPhone OS 4.0 многозадачность, она подразумевает более «умное» переключение между приложениями. Вы дважды нажимаете на кнопку Home, появляется новое окно со списком недавно использованных приложений. Выбираете нужное вам и переходите в него. Формально все это происходит без визуального закрытия программ.

Для разработчиков Apple добавила несколько новых инструментов, которые дают возможность не просто открывать и закрывать приложения (как сейчас), а «замораживать» их. Это даст возможность сохранять состояние программы при «выходе» из нее.

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

Фоновые задачи. Впрочем, помимо умного переключения есть и еще кое-что. Иногда нам действительно надо, чтобы приложение работало в фоновом режиме. В iPhone OS 4.0 разработчики получат инструменты, с помощью которых это можно будет сделать. Некоторые из них — например, push-уведомления — нам уже знакомы, а вот другие будут открытием. Так, во время презентации показали работу Интернет-радио Pandora, которое продолжает воспроизведение музыки даже в фоновом режиме. Работает это в iPhone OS также, как сейчас реализовано приложение iPod — вы можете слушать музыку и запускать другие приложения.

Также в фоновом режиме теперь можно будет обрабатывать VoIP-телефонию. Apple это показала на примере Skype, которое теперь может принимать сообщения и звонки даже тогда, когда формально не запущено. Более того, приложения подобного класса также научатся в фоновом режиме поддерживать соединение со своим сервисом.

Свою порцию получат и приложения, завязанные на обработку географических координат — навигаторы, социальные сети и т.д. Эти программы смогут в фоновом режиме получать данные от GPS-приемника и выдавать соответствующую информацию пользователю. То есть теперь при движении по маршруту вам будет необязательно держать навигатор открытым — вы сможете открыть любую другую программу, а навигационные указания вам будут продолжать поступать.

Правда Apple оговорилась, что GPS требует достаточно много энергии, поэтому будет доступен и другой способ получения координат — через башни сотовой связи. Он не так точен, как GPS, но для социальных сетей его достаточно.

Другая основа «многозадачности от Apple» — локальные push-уведомления. Ранее они работали только через сервер компании, теперь же будут отрабатываться на коммуникаторе пользователя. Это позволит приложениям информировать пользователя о неких событиях, происходящих на аппарате. Например, телепрограммы будут говорить о том, что начинается интересный фильм, или сообщать о каком-то сбое.

Наконец, решена и такая распространенная проблема, как «быть или не быть». Уверены, с ней вы тоже сталкивались. Вы что-то делаете в одном приложении, надо бы переключиться в другое, но процесс в первом еще не завершился (пост в твиттер не опубликовался, сообщение еще не отправлено, фотография во Flickr yе загружена). Вот и мучает дилемма: подождать окончания или нажимать кнопку Home для выхода? В iPhone OS 4.0 разработчики смогут использовать такую процедуру, как завершение задачи. Она подразумевает окончание в фоновом режиме той операции, которую начал пользователь. После этого программа уйдет в «заморозку».

Как мы видим, внедрению топорной многозадачности — все в память — Apple предпочла более изящное решение, которое должно удовлетворить всех. Конечно, есть еще некоторые открытые вопросы, но о них в свое время лучше расскажет Олег Свиргстин.

Источник: Macworld

Обсуждение

09.04.2010, 12:42
"фотография во Flickr yе загружена"
09.04.2010, 12:45


Прекрасно, давно ждали многозадачность.  Как Джобс говорит: "It's amazing" .
09.04.2010, 15:57
В общем как не было нормальной многозадачности - так и нет. =((( Чего теперь, ждем OS 4.1?
09.04.2010, 16:14
Притворщик,
зафиг она?
эта реализация намного лучше обычного сворачивания приложений
09.04.2010, 16:42
на словах звучит просто отлично. В принципе самое главное это действительно завершение задачи. Супер. Подожду еще реальных отзывов, но айпад уже хочу и если реализация многозадачности не подкачает, то воплощу желание.
09.04.2010, 17:01
D@rkNeo, надо же сказать что то плохое про эппл и ее продукцию))
09.04.2010, 18:25
Вопрос "зафиг она" уместен для телефона - вот ему не нужна.
Коммуникатор без нормальной многозадачности - это курам на смех.
Давайте называть вещи своими именами - iPhone - это телефон и никто слова не скажет.
09.04.2010, 18:56
Притворщик, Вы читать умеете вообще? зачем многозадачность при таком подходе к проблеме? те приложения, которым нужна фоновая работа - будут использовать новые API, другие же будут запускаться мгновенно, как только потребуются - для пользователя это будет выглядеть, как программа в фоне. что не так то?
09.04.2010, 18:58
а это решение намного более продуманно, чем просто держать приложения в памяти и просаживать память и батарею.
09.04.2010, 19:16
Хм, что это было? Весенне обострение? Надо стукануть модератору.
10.04.2010, 01:06
адепты многозадачности похожи на свинью под дубом, совсем все плохо... а епл. стоить уважать хотя бы за то что гнут свою линию не смотря на ор красноглазиков-маньяков.
10.04.2010, 10:10
Хм, что это было? Весенне обострение? Надо стукануть модератору.
А вот и весенние стукачи прилетели?? :)

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

За такой маркетинг много уважения не получишь.
10.04.2010, 11:22
Был тут один блаженный, кричал, ругался. Модератор отправил его уроки делать к понедельнику. Теперь его сообщения нет, а вот мое осталось. Отсюда некая двусмысленность моего поста.
10.04.2010, 12:34
как я понял, теперь апликации, которые должны работать в фоне, будут строиться по принципу демона, который исполняется в фоне до завершения приложения и в котором будет реализована основная функциональность приложения (соединение и поддержание соединения с сервером сервиса, опрос сервера, воспроизведение контента, ведение логов и т.д.) и само приложение, которое реализует только нарядный графический интерфейс с вводом данных и настройками и которое не жалко выгрузить из памяти при переключении на другую апликацию. и очень хочется надеется, что приложениям будет доступно как можно больше API в фоновом режиме. если все будет выглядеть именно так, то чуваки из apple гении и это революционно новый и самый оптимальный подход к реализации многозадочности - зачем вам все приложение в памяти, если лучше поместить туда только тот модуль, который требуется для реализации фоновых задач.
10.04.2010, 16:02
Это многозадачность в традиционном кукольно-мультяшном стиле iPhone OS :-))) Там только переключение между резидентными iPhone OS приложениями и все :-)))))))))))))))
Оставить сообщение
Обсуждение на форуме целиком