В Айфон-ОС 4.0 мультитаскинга так и не появится
Сегодня на показе будущей Айфон-ОС 4.0 (выйдет летом) Эплы произнесли волшебное слово «мультитаскинг».
Мультитаскинг — это, как правило, обычная фича для галочки, и совершенно неясно, почему этой фичи так требовали пользователи. Что толку с того, что любые приложения смогут висеть в фоне и жрать ресурсы? Это загадка. Тем временем, маркетологи конкурентов тщательно промывали мозги аудитории, говоря, что в Айфоне нет многозадачности. Так как звучит это круто и современно, и вообще, в других аппаратах это есть, то все требовали от Эпла этого. Но поскольку пользователи просто не въезжали о чём тут речь, то Эплы сообразили, что нужно делать: нужно просто сказать слово «мультитаскинг», чтобы все заткнулись на тему того, что его нет. Делать мультитаскинг при этом не обязательно, потому что это плохая фича.
Два тезиса:
- Операционная система Айфона поддерживает многозадачность.
- Приложениям, написанным сторонними разработчиками, запрещено оставаться и делать что-то в фоне.
Оба эти тезиса верны применительно ко всем версиям прошивок Айфона от 1.0 до 4.0. Многозадачность как была, так и осталась (иначе как вы получаете входящие звонки, или смс, или напоминалки, пока играете в Судоку под музыку из Айпода?), а фоном висеть неэпловским приложениям как нельзя было, так и сейчас нельзя (поэтому никакая плохая программа в тайне от вас не сможет ничего делать).
Вместо того, чтобы просто разрешить работу сторонних приложений в фоне, Эплы решают конкретные проблемы, которые есть у пользователей из-за отсутствия такой возможности. Первым был пуш — уведомления со стороны сервера. Пуш решил, например, проблему инстант-мессенджеров. Вместо того, чтобы оставлять крутиться фоном всё огромное приложение-болталку (или, ещё хуже, несколько таких приложений, со всеми их экранами, иконками и чёрт знает чем ещё), Эплы написали свой суперлёгкий и супербыстрый фоновый процесс, который в одиночестве обрабатывает все уведомления для всех программ, и может при необходимости запустить любую программу.
Пользователь этой кухни никак не видит. Допустим он пользуется приложением «Болталка» и сидит в чате с Васей, а потом выходит из него и запускает браузер. Вдруг на экране появляется сообщение, что Вася пишет «Пошли в кино». То, что появление этого сообщения вызвано эпловским сервисом его не волнует. Если он жмёт отмену, то приложение «Болталка» даже не узнаёт об этом всём, а если жмёт на «Ответить», то «Болталка» запускается и показывает ему диалог ровно с того же места.
Пуш решил не все задачи. Фоновое прослушивание музыки из чужих приложений (скажем, интернет-радио) или фоновое слежение за ГПС-координатами пользователя (для геосоциальных штуковин) оставались невозможными.
В прошивке 4.0 Эплы решают эти задачи, выпуская решение под брендом «Мультитаскинг». В действительности же они просто добавляют свой фоновый сервис, который умеет играть музыку, и свой сервис, который следит за ГПС-координатами, а также АПИ для взаимодействия сторонних программ с ними. И ещё пару сервисов других. Всё. Сторонним программам по-прежнему никто не разрешит просто так висеть и занимать память и процессор. Поэтому по-прежнему не будет никакого диспетчера задач, а фоновая программа не сможет зависнуть, потому ОС будет точно так же убивать её при выходе на домашний экран, как это делают первая, вторая и третья прошивки.
И слава богу.
Одно только дополнение: «now I want to play a game — now I want to play a game, Tap Tap Revenge, it keeps me where I was».
То есть есть все же некий механизм дампинга состояния приложения и его восстановления.
Или оно и так было? Но даже если было — складывается ощущение, что в этой области что-то подвинулось.
Короче, думается, приложение все же не так уж тупо убивается-запускается. Приостанавливается — да. Действия в фоне только через API — да. А вот убивается ли? Не факт.
Насколько я понял, оно как-то «замораживает» приложение, вероятно, скидывая его кусок памяти и состояние процессора куда-то «на диск». Это тоже одна из новых штук, кажется, последняя в их списке сервисов. Смысл в том, что фоновые процессы остаются под эпловским контролем, а это просто механизм повышения удобства для разработчиков.
Да всё правильно они сделали. Платформа iPhone/iPad вообще очень четко и уверенно развивается. Думаю, что и над МакОС ведётся тайная работа. В настоящий момент мне даже кажется, что мобильная ОС во многом лучше настольной.
ну с мультитаскингом ладно.
если пуш решает бОльшую часть проблем, то и будда с ним.
меня другое убило, что по новому дев-соглашению нельзя будет использовать прослойки и языки, отличные от C/C++/Obj.C/js
это пиздец, по-моему.
нет, не вопрос, это нацелено на улучшение качества работы программ и на войну с флешем.
но тут же возникает вопрос: какого хрена?
ну ладно ява — она прожорливая и толстая, вроде как.
но флеш? я вообще не понимаю всю эту войн с флешем.
эппл и адоб всегда дружили, вытягивая друг друга на рынке.
адобовские продукты всегда делались изначально под макось.
ну все же было хорошо и вот нате.
вместо того чтоб договориться, сделать нормальный флеш-плеер под мак с аппаратным ускорением и все дела — развязали войну.
лажа какая-то...
Ну что значит договориться? Надо было Адобам взять да сделать нормальный флеш-плеер. Они провафлили хрен знает сколько лет, забивая на Мак, а теперь, когда оказалось, что это было ошибкой, виноваты оказываются Эплы? Странный взгляд.
Поддерживаю Сергея Петрова.
Думаю там какой-то механизм для дампа состояния будет, для полной «эмуляции многозадачности».
Иначе не совсем понятно, зачем этим эппловым сервисам 256 мег памяти, например.
Кстати ещё интересный момент, на котором не акцентировали внимание — закрытие приложений. То есть в списке задач, вызываемом по даблклику по сути будут приложения, которые сейчас как-то используют новые эппловые вызовы и что-то хотят сказать пользователю, а все остальные так и останутся на спрингборде, как я понимаю.
Тогда вопрос что же там делал тот же Tap-Tap Revenge в списке задач, если он по сути для работы требует непосредственного общения с юзером.
Короче много всего непонятно осталось.
В АПИ появятся механизм для приложений, позволяющих говорить операционной системе, что типа «я хочу оставаться в фоне», что будет на деле означать «перед тем как меня остановить, сохрани моё состояние». Вероятно, проги, в переключалке висящие, это как раз те, которые попросили оставить их «в фоне».
Я могу ошибаться, конечно.
оффтоп: ээ.. третьего уровня в каментах нету?
по теме: честно, я не знаю кто тут виноват. мне эта ситуация напоминает двух баранов на узком мостике.
эппл воюет с флешем, потому что флеш на эппле работает плохо, а адоб не может заточить флеш под эппл, потому что у эппла закрыты какие-то там апишники и они не хотят их открывать (уже не помню точно что именно, читал на эту тему, но они в общем не могут простучаться к аппаратному ускорению, а с софтовым лажа получается).
и блин выходит долбанная рекурсия, в итоге от которой проигрывают пользователи.
Не, я думаю вы неправильно оцениваете ситуацию. Эпл ни с кем не воюет. Есть технология, которая работает очень плохо. У них есть выбор: использовать её или нет. Они, естественно, выбирают «не использовать». Всё тихо и мирно.
В Интервью Gizmodo на ивенте, кстати, эппловцы сказали, что закрытия приложений не будет как такового, что типа не надо юзеру ещё думать о том, какие у него приложения открыты, а какие нет. И это правильно, в принципе, но вызывает кучу вопросов:
Странно и непонятно это всё, если честно, пока что.
Мне нравится идея заморозки приложений плюс родной системы сервисов, с помощью которой замороженные приложения смогут общаться с пользователем, но текущая схема переключения приложений очень странная.
Особенно учитывая, то что:
Уж лучше бы exposé, честное слово.
Хотелось бы видеть ласт.фм скробблер для айфона, и судя по представленным заменителям мультитаскинга, фиг знает, появится ли возможность его реализовать :/ Он должен висеть в фоне, цеплять названия песен и сохранять на потом или сразу слать на сайт. Ну или цепляться к плееру как плагин, если там такое вообще есть.
Относительно эпл/эдоби: ладно эпл не использует флеш в броузере, хрен с ним. Зачем запрещать создание софта через что-то отличное от xcode? Это ж не только флеш, а monotouch и другие пролетают.
У меня сто лет тому назад был Handspring, прозрачный такой (платформа Palm). Так небыло мультитаскинга, но зато все приложения постоянно висели в памяти и ничего не надо было сохранять. Работал он от двух ААА батареек месяц. Очень хороший аппарат. Кстати к интерфейсу там очень хорошо подходили, были даже guidlines как делать интерфейс неперегруженным (основной принцип: Одна задача — одно приложение).
отличный телефон. продолжай пользоваться.
я когда читаю книжку у себя в телефоне, у меня в фоне может ставится новое приложение и висит google talk, по которому я изредка общаюсь, если сообщение приходит. Вот тебе и применение.
На Айфоне новые приложения ставятся фоном и всегда ставились фоном. Инсталлятор — это эпловский процесс, ему можно висеть фоном. Что касается общения, то Voice over IP — один из новых фоновых сервисов, его как раз показали на примере Скайпа.
Ага, ты про IM написал.
Но ты описал какую-то надуманную проблему «оставаться в фоне и тормозить». У меня остаются приложения в фоне, но, сюрприз, не тормозят. Нет такой проблемы.
Bolk, приложение ставится не настолько долго, чтобы во время этого прям нужно было читать книжку. А IM в фоне у тебя батарейку жрёт, что на Айфоне решается пуш-уведомлениями.
Да пусть проги висят и жрут ресурсы. Мне без разницы сколько у меня свободных рамов в айфоне когда он в кармане лежит. Но с другой стороны, я понимаю эппл... т. к. из-за кривых прог, если они будут глючить, все будуь думать что айфон Г.
А про флэш на айфоне, я думаю что его не хотят не потому, что он кривой, а просто из-за того что народ перестанет покупать проги в сторе. Это ж пизнес ;)
Последнее — ерунда. То, что он кривой — научный факт. Он у меня на четырёхядерном компе с 10 ГБ памяти тормозит, зачем ему разрешать работать в Айфоне? Что касается прог вне стора, то непонятно в такой логике, почему они не запрещают ХТМЛ+Джаваскрипт. Есть много очень навороченных веб-приложений, которые вполне заменяют нативные, и Эпл совершенно не переживает по этому поводу, а только наоборот, развивает крутые фичи ХТМЛа для этого.
На заметку: приложения на айфоне всегда ставились и скачивались в фоне и без всякой мультизадачности.
Илья если этот процесс такой легкий и быстрый почему не сделали мультитаскинг для 3г? Маркетинг?
Я склонен думать, что да. Хотя официальная позиция — старые Айфоны «аппаратно не поддерживают». Явная чушь. Но в принципе, 7 фоновых сервисов вместо одного — это, конечно, всё равно нагрузка, тормозов это добавит, так что, наверное, это тоже возымело значение.
Артём, оно не ставится долго, оно долго скачивается.
Илья, я всё забываю, что Сидия не родное приложение.
Скачивание и установка — это единый процесс с точки зрения интерфейса Айфона, всё это делается фоном.
Сидия не родное приложение, но оно требует джейлбрейка, а значит ломает эпловские штуки, мешающие ему оставаться в фоне. Поэтому если Сидия не умеет скачивать и устанавливать приложения в фоне, то вопросы уж точно к Сидии, а не к Эплу.
Кстати, Илья, ты Flash 10.1 на Маке пробовал? Как оно? Перестало тормозить?
Не знаю ничего про Флеш 10.1, разве он вышел?
«Есть много очень навороченных веб-приложений, которые вполне заменяют нативные, и Эпл совершенно не переживает по этому поводу, а только наоборот, развивает крутые фичи ХТМЛа для этого.»
Я думаю, что в эппсторе на порядок чаще покупают игрушки, а не утилиты. Поэтому ХТМЛ это хорошо, но на нем много не заработаешь. А флеш не пустят т. к. он ударит по популярности нативных игр. Кстати, а может эпл делает свой «флэш», поэтому и не пускают адоб.
А как на Флеше заработать больше, чем на ХТМЛ? Что-то я не пойму. Эпл делает свой Флэш, он называется Какао-тач.
На самом деле нечто похожее на диспетчер задач всё-таки есть. По двойному хоуму выползает панель с висящими в фоне приложениями. Совершенно интуитивным образом тапнув и подержав палец на иконке, на ней появляется значёк удаления. То есть можно закрыть неиспользуемое, но висящее в памяти приложение.
Скриншот к предыдущему сообщению (на всякий случай):
http://dl.dropbox.com/u/689835/home.PNG
О «научности» фактов. Я пользуюсь полноэкранными флешовыми приложениями на ноутбуке, где они использует аппаратное ускорение на видеокарте и ничего не тормозит.
Если у вас он тормозит на 4-х ядерном мегакомпьютере, то вы сами выбрали мак и флеш вам там не нужен, там и так всё здорово.
Но ваши оценки технологии в целом — ерунда, так как флеш существует все зависимости от маков, линуксов и прочих ириксов с их кривыми реализациями.
Вы не поверите, Павел, но ни на Айфоне, ни на Айпаде не будет устанавливаться Виндоус :-)
Вы очень, очень, очень смешной, просто умора.
10.1 не вышел, но есть бета, можно попробовать.
Флеш и так еле работает, так что ставить то, что даже сами разработчики не называют «релизом», а называют «бетой» мне как-то совсем стрёмно.
Должно стать сильно легче, его переписали полностью, под новое API Мака.
Я дождусь релиза :-)
...iPhone OS 4 многозадачна! Для того, чтобы переключаться между приложениями достаточно два раза нажать на кнопку Home и вы увидете все запущенные приложения.
Как сказал Стив, проблема внедрения многозадачности состояла в уменьшении времени работы гаджета, но инженеры Apple смогли найти компромисс... Вот такое прочитал на Хабре, может они что-то перепутали?
В чём именно состоит «компромисс» описано в заметке, которую вы комментируете, Юра.
вы не поверите, но я не говорил о том, что на Айфоне будет устанавливаться Виндоус, но только о том, что ваша оценка флеш, как технологии — ерунда.
ну нет флеша, зачем комплексовать по этому поводу и переходить на личности. И без того понятно, что ничего не остаётся, как доказывать себе его ненужность и ущербность.
Я клянуюсь, что улыбаюсь, когда читаю ваши сообщения. Это ж надо так уверовать во Флеш, а!
OnyX, йойо, svg + js, которые в вебе развивают в первую очередь эппловцы. И на Айфоне тоже. То есть они усиленно, уже несколько лет продвигают и пиарят открытые технологии, которым никакие Сторы не нужны. Собственно первый айфон и запускался исключительно с такой мыслью. Сейчас на html5 реализован iAd. Ага, игры, фильмы, музыка. «app inside app» что-то такое звучало комментариями к iAd. А это обычный html.
Ну и как бэ, апп стор не приносит никаких денег (в масштабе этой компании, конечно), отчетность открытая, можете сами посмотреть. Даже айтюнс это мааааленький бизнес. Эппл железки, продает.
И насчет фоновых приложений. Можно я свой коммент с хабра сюда перепощу? Простите, если что, но вроде в тему ):
Да когда ж вы ребята поймете, что проблема не в пользователях, а разработчиках. Айфон стал первой мобильной платформой, которая предлагала 100 процентов ресурсов железа разработчику. Ему не нужно больше ни о чем думать. Запустил? Не тормозит? Отлично, в апп стор! Не нужно заниматься лишней оптимизацией, не нужно убирать полезные «красивости», избавляться от второстепенного функционала. И ни один пользователь не отдаст предпочтение конкурирующей программе «потому что на два мегабайта меньше занимает и не тормозит с браузером». Никогда бы айфон не стал столь успешной игровой платформой будь там многозадачность. И не потому что каждый отдельный пользователь не может выключать приложения прежде чем игру запустить, а потому что таких бы игр никогда не появилось.
Конечно, это все идет в основном от ограничений железа. Сейчас железа стало достаточно, чтобы внедрить почти полноценный мультитаскинг, через пару лет больше.
http://habrahabr.ru/blogs/iphone/90435/ — ссылка на заметку, но в чем именно заключается компромисс неизвестно.
Юра, я говорю этой заметке, ссылка на которую — http://ilyabirman.ru/meanwhile/2010/04/09/1/
вы наверняка знаете, в каких случаях переходят на метод: «вы смешной». Немного разочаровали, Илья.
Я постараюсь стать лучше в будущем.
А эта ос4, она на 3G станет? Или как?
На 3Г — без «мультитаскинга».
Да кому нужны Флэш и честный Мультитаскинг, когда есть iAd?
Логика, ок
Пойду гляну как там на Witu флеш-сайты работают. Может и пойму чего в этом такого крутого.
Заставят-таки купить 3Г С :-) Тем более, в последнее время, меня как-то напрягают различные задержки: при открытии приложений или просто тыкании в программе, особенно это заметно у эсемесалки (открывается порядка 2-3 секунд), настройки (открывается столько же), так как я ими достаточно часто пользуюсь, ну и у остальных похожая ситуация, разве что кроме «телефона» — он висит постоянно в фоне, насколько я понимаю. Иногда столько же приходится ждать при нажатии на контакт из списка. Видел ролики про 3Г С, выглядит всё намного лучше.
А ещё, Сафари писал какой-то идиот. Не понимаю, как может идти речь про многозадачность, когда в браузере до сих пор нельзя нормально держать 2 открытые вкладки.
Семён Перепелица, в смысле «нельзя нормально держать 2 открытые вкладки»?
Видимо речь о том, что браузер любит через какое время забыть, что было в соседней вкладке, и при переключении в неё начинает качать страницу заново.
Илья, да, есть такое. Проверю не убрали ли в 4.0. Сколько надо выжидать?
Кстати, по поводу сервисов многозадачности. Я так и не понял, это сервисы самой ОС? Я видел сегодня статью, где утверждали, что при нажатии на хоум, приложения «встают на паузу», то есть они вроде не работают, но оставляют в фоне свои сервисы.
Там какой-то аналог спящего режима. То есть слепок памяти сохраняется просто, а потом возвращается приложению. Приложение думает, что ничего не произошло, но на самом деле оно не выполнялось.
А кто, кстати вообще видел флеш на телефоне? Ну там на андроиде или винде? Можно глянуть хоть, как это выглядит? Как вот например http://www.matiz2.ru/ будет на экране мобильника смотреться? Как вообще навигацией пользоваться на флеше?
Я сегодня пытался найти счастливого обладателя неайфона и увы не нашел.
Илья, а, например, Томтом, который из фона следит за маршрутом и озвучивает подсказки. Он просто создает маршрут и передает его сервису ОС, который делает все остальное, или Томтом оставляет после закрытия «хвост», в виде собственного сервиса, который и делает всю работу?
Я могу врать, но насколько я понял, он может отдать системному геоследящему сервису какой-то свой callback. Ближе к лету будет ясно, как это работает :-)
Видео http://gizmodo.com/5512966/iphone-os-4-hands+on-video
Закрытие фоновых приложений таки есть :-)
разрешили, будут висеть и занимать. Источник — документация iPhone OS 4 SDK
вы смотрели презентацию?
немного не так. Фоновые программы именно «зависают», т. е. полностью останавливают работу, если они не подписаны на вышеозначенные фоновые сервисы. При этом, программы не удаляются из памяти. Реальное убивание программы происходит только в случае, если системе не хватает памяти.
Тысячи приложений в соц. сетях написаны на Flash, и переписывание их под HTML5 расшатает нервы любому разработчику. Не говоря уже о том, что этого разработчика ещё найти надо за приемлемую стоимость.
mono2k, может вы источник-то покажите? А то как-то сомнительно все это звучит.
Илья, почему ближе к лету, что изменится?
Ну как: сейчас СДК постепенно попадёт в руки к разным людям, все будут писать статьи и всё такое.
Советую автору использовать Windows 7 Starter с ограниченным мультитаскингом дабы насладится всеми прелестями этой ненужной фичи.
Даже Микрософт уже понял, чем мобильное устройство отличается от компьютера, а вы всё ещё нет. Постарайтесь впредь давать советы по темам, в которых что-то понимаете.