Многозадачность в Windows Phone 7 Series

    Одним из наиболее спорным вопросом, обсуждаемых при рассмотрении Windows Phone 7 Series является многозадачность, а точнее ее отсутствие. Как выяснилось, этот вопрос вызывает озабоченность у большого числа пользователей и разработчиков. Давайте подробнее рассмотрим этот вопрос. Для этого обратимся к реализации многозадачности в Windows Phone Classic (старое название – Windows Mobile 5.x, 6.x).

    В Windows Phone Classic многозадачность была реализована в полной мере. Это означает, что в один и тот же момент времени без приостановки могут выполнятся несколько приложений. Это, по сути, некоторый аналог настольной платформе, где этот процесс выглядит аналогичным образом. Однако, давайте подумаем – а действительно ли использование подобного подхода для мобильной платформы также обоснованно, как и для настольной?

    Давайте попробуем представить типичный сценарий использования мобильных устройств. Наверняка он будет включать в себя использование нескольких приложений поочередно в течении длительного количества времени. Например, в данный момент я использую несколько таких приложений: просмотр фотографий, чтение электронной почты, чтение ленты Twitter, просмотр текущего трафика, Windows Media Player, редактирование и просмотр документов Microsoft Office, просмотр документов PDF, калькулятор и др. При длительном использовании устройства можно обнаружить, что в памяти загружены все или часть этих приложений, при этом в данный момент они совершенно не нужны, поскольку нет необходимости в их использовании. Тем не менее, в данный момент они действительно загружены в память и исполняются, загружают центральный процессор, занимают память и расходуют батарею. Конечно, некоторая часть пользователей внимательно следит за тем, чтобы в данный момент были загружены только необходимые приложения, но так делают далеко не все. Именно по этой причине использование подобного подхода не является обоснованным для мобильной платформы.

    В некоторых мобильных платформах существует другая крайность – возможность запускать в каждый момент времени только одно приложение. Такой подход также не является правильным, поскольку иногда все же необходимо запускать одновременно несколько приложений. Классический пример – использование проигрывателя музыки в момент использования других приложений, например, чтении почты.

    Разработчики Windows Phone 7 Series решили не прибегать к крайностям и выбрали золотую середину. В Windows Phone 7 Series в каждый момент времени может выполнятся только одно запущенное приложение. При этом существует набор системных приложений, которые могут выполняться “в фоне”. При переходе на главное окно или переключении на другие окна, текущее приложение переключается в приостановленное состояние. Что интересно, операционная система в произвольный момент времени может вовсе удалить этот процесс из памяти. Поэтому в момент приостановки следует сохранить состояние приложения, а в момент возврата к приложению – восстановить это состояние. Служебные механизмы Windows Phone 7 Series самостоятельно выполняют действия по сохранению и восстановлению состояния, поэтому разработчику приложения не нужно об этом заботиться. Пользователь при переключении между приложениями также не заметит никакой разницы, если приложение было удалено из памяти – он вернется к тому состоянию, в котором находилось приложение в последний раз.



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

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

    Однако, ряд задач не могут быть реализованы при использовании описанного процесса. Дело в том, что есть некоторые задачи, которые требуют фонового исполнения. Например, это может быть приложение для записи GPS-трека пользователя или будильник, который должен сработать в определенный момент. К сожалению, в той версии Windows Phone 7 Series, которая была представлена на MIX 2010 эта функциональность не реализована. Однако, команда разработчиков в данный момент занимается этим сценарием и в ближайшее время мы с вами сможем попробовать реализовать и такие сценарии.

    Таким образом, видно, что подход для организации работы множества приложений в Windows Phone 7 Series стал более эффективным, чем он был реализован ранее, в Windows Phone Classic.

    blog.zwezdin.com
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 116

      –21
      Так а че исходники iPhone OS утекли в сеть???
      • НЛО прилетело и опубликовало эту надпись здесь
          –9
          Два комментария, два стереотипа. Думать мы начнём своей головой когда-нибудь?
          • НЛО прилетело и опубликовало эту надпись здесь
              +2
              Юмор надо понимать — это первое. причем тут думать своей головой — это второе. А то складывается ощущение, что вы точно не думали своей головой когда писали этот комент. Простите не в обиду. Я могу и ошибаться…
              • НЛО прилетело и опубликовало эту надпись здесь
                  –2
                  всегда рад
          +5
          Т.е. оставить в фоне Jabber-клиент, ожидая сообщения, а самому в это время бродить по интернету всё-таки никак не получится?
            –1
            Получится, но в более поздних сборках.
              +2
              честно говоря странная система проектирования у мс…
                –3
                если не сложно, то поясните, пожалуйста.
                  +3
                  Просто со стороны выглядит это так:
                  — «Пользователи жалуются, что наша система нерационально расходует память, быстро сажает батарею и тормозит»
                  — «Но ведь они сами в этом виноваты, они не следят за тем, сколько приложений запущено»
                  — «Но ведь многие даже не знают, как это проверить»
                  — «Хорошо, тогда мы будем грузить в память только одно приложение одновременно, а остальные выгружать в СВОП»
                  — «Но ведь продвинутым пользователям это не понравится»
                  — «Да, но ведь их так мало :((((»

                  Мне кажется идеальным следующее архитектурное решение: разработчик получает возможность маркировать свое приложение, допустим как «Приложению требуется выполнение в фоне для корректной работы» и вопрос от операционной системы «Разрешить приложению работать в фоне? Да / Нет»

                  И волки (пользователи) сыты и овцы (память, батарея, быстродействие) целы.
              0
              Пруфлинк?
            +3
            Я тоже об этом в первую очередь подумал. Та же аська -перейдя в фон-перестанет принимать сообщения и т.д. Получается, что в прямом смысле слова ВинМоб7 лишен многозадачности… Множество приложений может висеть в приостановленном виде в фоне, а работать из них сможет только одно. Не айс. У юзеров должна быть возможность выбора.
              +1
              Sergun пишет, что немножко многозадачности всё-таки будет)
                +1
                В результате в фоне сможет работать только мсн мессенджер)
              0
              Там вроде какой-то Notification services будет, который как раз для таких сценариев.
              +10
              Конечно, некоторая часть пользователей внимательно следит за тем, чтобы в данный момент были загружены только необходимые приложения, но так делают далеко не все. Именно по этой причине использование подобного подхода не является обоснованным для мобильной платформы.

              Знаю кучу народа, которые и на обычных компах открывают стопицот приложений и жалуются, что компы тормозят. Однако не считаю это поводом отказаться от многозадачности.
              В предыдущих версиях WinMo при нажатии на крестик приложение не закрывалось, как люди обычно ожидали, а сворачивалось, поэтому в памяти и висели ненужные приложения. Установкой нормальных менеджеров приложений ситуация исправляется, и система ведет себя так, как от нее требуется.
                +1
                В настольных приложениях все по-другому.
                Приложение работает, приходит входящий звонок — оно уходит в память и может жить там очень долго, я именно про это говорил.
                А что касается менеджеров приложений — да, действительно так. Только такие вещи должны решаться на уровне ОС, а не путем использования сторонних приложений.
                  +1
                  Уверен, для этого в коде ОС нужно было поправить несколько строк, а они они решили отказаться от многозадачности вообще.
                    –1
                    Да кто же говорит, что от многозадачности отказались вообще? Многозадачность есть!
                      +1
                      Но только для избранных приложений, как я понял из статьи.
                        0
                        Нет, не только для избранных.

                        Однако, ряд задач не могут быть реализованы при использовании описанного процесса. Дело в том, что есть некоторые задачи, которые требуют фонового исполнения. Например, это может быть приложение для записи GPS-трека пользователя или будильник, который должен сработать в определенный момент. К сожалению, в той версии Windows Phone 7 Series, которая была представлена на MIX 2010 эта функциональность не реализована. Однако, команда разработчиков в данный момент занимается этим сценарием и в ближайшее время мы с вами сможем попробовать реализовать и такие сценарии.
                          +2
                          То есть ничего определенного сказать пока нельзя. Вот будет готовая реализация, можно будет и поспорить.
                            0
                            Определенно можно только сказать, что background processing будет.
                            Остальное — позже.
                  +2
                  по-идее более логичным было бы другое поведение: по нажатию на «крестик» приложение должно закрываться (полностью) а если пользователь хочет его держать в фоне то должен «предпринять дополнительное действие», как пример — «минус» для сворачивания в трей (в фон). Свои приложения я так стараюсь писть (для себя) хоть это и нестандартно (для WinMo)
                  +3
                  «В некоторых мобильных платформах существует другая крайность – возможность запускать в каждый момент времени только одно приложение.»
                  Это в каких же?

                  «Разработчики Windows Phone 7 Series решили не прибегать к крайностям и выбрали золотую середину. В Windows Phone 7 Series в каждый момент времени может выполнятся только одно запущенное приложение. При этом существует набор системных приложений, которые могут выполняться “в фоне”.»
                  Ммм, свежая мысль /sarcasm.
                    +3
                    PalmOS, к примеру. На редкость шустрые машинки получались.
                      0
                      Кстати, да. Развитой системы прерываний/резидентов а-ля ДОС вполне хватало, чтобы реализовать удобнейший icq клиент.
                        0
                        И еще была интересная перспектива, так, к сожалению, и не реализованная — PalmOS 6 «Cobalt». Обещано было что каждое приложение делится на «треды исполнения» — один интерфейсный (менеджер форм/окон) и некоторое количество фоновых (получение почты, ожидание им-ов, проигрывание музыки). В каждый момент времени работает интерфейсный тред только одного приложения и фоновые всех запущеных. Вроде бы были даже пре-пре-альфы, но затем разработчиков palmOS купила Access и понеслось…
                          0
                          Точно такая же система используется в Android. Там приложение разделено на Activity (интерфейс) и Service (фоновые службы). Многозадачность без проблем.
                            +1
                            Подозреваю, что за счет этого можно только немного сэкономить память, а проблемы с процессорным временем и батарейкой остаются все те же.
                              0
                              Сервисов довольно мало, тем более они не висят в цикле каждый раз проверяя значение, а срабатывают на определённые события. Так что если не запускать музыку или запись GPS-координат, то и постоянно работать ничего не будет.
                                +1
                                Если что-то тяжелое можно запускать в фоне, то факт, что пользователи будут это запускать. Задачи бывают разные, не все ограничивается музыкой и GPS. OCR, например. Да и обычные приложения, Вы не поверите, срабатывают на определенные события — user input =)
                    +9
                    По-моему это бред. А статья написана чтобы мозг запудрить тем, кто не разбирается в теме =).

                    Ну никак такой подход нельзя назвать золотой серединой. Приведем несколько примеров, когда нужна многозадачность:
                    — хочется слушать музыку и лазить в интернете
                    — хочется слушать музыку и читать почту и общаться в IM(аське, жабере или irc)
                    — хочется сидеть в IM и иметь возможность смотреть при этом какую-то видюшку или в инете по страничка лазить.
                    — …

                    список продолжать надо?

                    Вы тайный менеджер микрософта? Я не в коей мере не хочу преуменьшить достижения этой компании, но однозадачная ОС в наше время это бред, ИМХО.
                      +1
                      Вы видмио читали невнимательно.

                      1) Это можно сделать
                      2) Это можно будет сделать
                      3) Это можно будет сделать

                      Продолжайте список.
                      • НЛО прилетело и опубликовало эту надпись здесь
                          +1
                          Это ранний preview платформы. Сделано для того, чтобы разработчики могли посмотреть на то, что их ожидает.
                          • НЛО прилетело и опубликовало эту надпись здесь
                              +1
                              Нет, будет только к концу года.
                            –2
                            Нужно же похвастаться несуществующей гравицапой Пепелаца,
                            которая будет зделана тогда, не понятно когда.
                            Это простой маркетинговый ход для PRа wm7 И всё.
                              +1
                              В айфонос копипаст появился только в её третьей жизни.
                              Возможность установки софта — во второй.

                              Так что у ВинМоб7 ещё не всё потеряно.
                              • НЛО прилетело и опубликовало эту надпись здесь
                            0
                            Я надеюсь, что IM музыка и тд будут работать как сервисы, а их гуй будет спокойно выгружаться из памяти.
                              +2
                              Именно!
                                0
                                Я || с вами написал о возможном похожем решении. Но есть и серьёзный drawback — даже оставляя лишь часть приложения в памяти, мы не застрахованы от кейсов, когда криворукость программистов или серьёзность задачи будет заметно ухудшать пользовательский опыт. Те самые тормоза, неоправданный расход трафика(не забывайте о нём для always connected устройств!), расход АКБ.

                                В качестве одного из решений можно усилить процесс отбора и одобрения приложения, добавив кучу дополнительных тестов и условий. В этом случае время одобрения возрастёт в РАЗЫ, что никак не может устроить Microsoft.
                                • НЛО прилетело и опубликовало эту надпись здесь
                                    0
                                    Ну не совсем. В андроиде еще и полноценная многозадачность есть.
                                  0
                                  Выше описан механизм по-умолчанию. Никто вам не мешает его обойти.
                                  Думаю в языковых конструкциях предусмотрен обход Suspend, могу предположить, что есть какой-нибудь обработчик типа OnApplicationSuspend, в котором e.Cancel = true и ничего не будет суспендиться. Тут всё от разработчика зависит, нет строгих запретов.
                                    0
                                    Об этом говорить рано.
                                    Давайте дождемся анонса фоновых процессов.
                                      0
                                      Многозадачность должна поддерживаться прежде всего на уровне ядра. Если она есть, полноценная, но ограничивается только АПИ для разработчика, как вы написали — это одно дело. Если ее нет (полноценной), то другое.
                                        +1
                                        На уровне ОС она естественно поддерживается.
                                    +4
                                    Что-то много каши по этому поводу и сплошная неразбериха, МС неправильную политику разъяснения ведет, особенно «сейчас этого нет, но оно будет», при этом на самих аппаратах тестовых уже работает Zune плеер на фоне и т.п.
                                      –4
                                      Я разве не ясно описал подход к многозадачности в WP7?
                                      По мне все достаточно прозрачно — WP7 будет поддерживать многозадачность, но несколько в ином виде.
                                        +4
                                        Для меня все ясно было и до статьи, но разве не видно как запутали людей? :)
                                          –1
                                          Тяжело рассказывать о вещах, часть из которых еще не анонсировали.
                                          Да еще когда и по-диагонали читают текст.
                                          В следующий раз буду аккуратнее. :)
                                            0
                                            Может быть тогда не надо было рассказывать, если все говорить нельзя, а из части сказанного только еще больше путаницы? Ну подождать до момента, когда все можно написать? А не убеждать сразу людей, что это им и не нужно.
                                              +2
                                              Из того что есть — многозадачность есть в том виде, котором я написал, выполнять приложения в фоне — тоже можно будет, но чуть позже.
                                              Неужели это не интересно узнать прямо сейчас?
                                      +1
                                      В общем, подход абсолютно верный.
                                      Гики могут оставаться на WM, для обычных юзеров многозадачность(в настольном или WM её понимании) не нужна.

                                      Тем не менее, есть несколько моментов, которые явно требуют улучшений. (ОТ сравнений с iPhone, как с устройством которое исповедует те же принципы не избежать ;)

                                      Возможные пути развития:
                                      -Push notifications — адекватное и здравое решение. Из минусов, на примере iPhone, это ограничения стандартного системного pop-up окна с оповещением о Push событии. Сейчас на iPhone я могу получить Facebook сообщение, закрыть окно или запустить приложение и всё. Было бы неплохо, если разработчики могли добавлять и модифицировать этот интерфейс.
                                      -При сохранении состояния можно часть приложения(небольшой поток), которое будет отвечать за имитацию многозадачности оставлять в системе и выделять ресурсы. То есть, при сворачивании Jabber клиента выгружается 95% приложения, оставшиеся 5% могут получить сообщение и выдать нотификацию системе.
                                        0
                                        Для таких случаев будут работать фоновые процессы приложения, если приложению это нужно.

                                        Однако, ряд задач не могут быть реализованы при использовании описанного процесса. Дело в том, что есть некоторые задачи, которые требуют фонового исполнения. Например, это может быть приложение для записи GPS-трека пользователя или будильник, который должен сработать в определенный момент. К сожалению, в той версии Windows Phone 7 Series, которая была представлена на MIX 2010 эта функциональность не реализована. Однако, команда разработчиков в данный момент занимается этим сценарием и в ближайшее время мы с вами сможем попробовать реализовать и такие сценарии.
                                          0
                                          Тот самый «фоновый» процесс в системе остаётся пользовательским процессом и он всё равно может приводить к проблемам многозадачных мобильных систем.

                                          Как этого избежать?
                                            –2
                                            Тем не менее это лучше, чем то, что сейчас есть в Windows Phone Classic.
                                            Вообще, рано об этом говорить до анонса фоновых служб в WP7. Поэтому давайте оставим этот вопрос до этого времени.
                                          0
                                          так в статье об этом и речь! :)
                                        –2
                                        Лично как по мне производительная многозадачность это миф.

                                        1) Мало кто помнит закон Амдала — закон про то что на четырёхядерном процессоре вы получите прирост меньший чем четыре раза (я точно не помню формулы, но по-моему 3,5 раза).
                                        А при бесконечном числе ядер этот прирост будет стремится к 1. =)
                                        2)Системы основаные на прерываниях, так называемые матричные шедуллеры имеют плохую аппаратную поддержку. Прерывания в этом случае «едят» многовато процессорных тактов. Даже куча простых jmp'ов могут сильно влиять на производительность, и далеко не каждый компилятор это всё оптимизирует. Я уже не говорю про кэширование процессора read-ahead. То-есть запустили две программы — это не означает что один общий 1ГГц поделится на 500МГц, тут огромную роль играют шедуллеры, task менеджеры, и прочая ересь которая ест до 10-30% производительности.
                                        3) Если это телефон — то это RISC процессор аля ARM. В его случае вообще нежелательно делать много far jmp'ов, и темболее вызовов прерываний, ибо они едят от 5-ти до 10 тактов проца.
                                        4) Системы с планарными шедулерами и таск менеджерами есть в ОСях типа QNX, это такие которые на ядерных електростанциях стоят.
                                        Системы с генетическими нечёткими шедулерами…
                                        Ом… в природе их нет — они есть на калькуляторе, и у меня в блокноте =)

                                        Так что как видете есть два «основных» способа решения многозадачности это планарный и матричный. Если мелкософт будет реалировать это всё дело в «золотой середине» — это будет довольно интересное решение. У меня остаёться лишь единственное сомнение, по-поводу хорошей апаратной поддержки для АRM'ов. А так удачи мелкомягким.
                                          0
                                          Производительная многозадачность на пользовательском устройстве — миф? Запустите Windows.

                                          Вы действительно верите, что переключения контекстов и синхронизация убьют производительность гигагерцового процессора на телефоне? От 5 до 10 тактов? Уважаемые пользователи, многозадачность вам не нужна, иначе миллиардную цифру в числе «пи» вы сможете получить на 2 минуты позже пользователей iPhone.

                                          Про far jmp вообще не понял, в чем сложность занесения в регистр счетчика команд целого числа?
                                            0
                                            Вы действительно верите, что переключения контекстов и синхронизация убьют производительность гигагерцового процессора на телефоне?
                                            Если бы не считал и не дизасамблировал, то не верил бы.

                                            Про far jmp вообще не понял, в чем сложность занесения в регистр счетчика команд целого числа?
                                            Сложность только в количестве тактов которое потребуется для этой самой записи и перехода.
                                            В больших циклах с ветвлениями, если это планарный способ организации многозадачности, есть 3Кг этих самых джампов, а с страницы на страницу перепрыгивать ими слишком болезненно, иногда даже лутше задавать это через векторы прерывания.

                                            Уважаемые пользователи, многозадачность вам не нужна, иначе миллиардную цифру в числе «пи» вы сможете получить на 2 минуты позже пользователей iPhone.
                                            Многозадачность нужна только с нормальным шедуллером и таск менеджером которые ориентированы на конкретную платформу.
                                          +1
                                          Уважаемые, я прочитал пост внимательно, потом еще раз пробежался бегло, поправьте меня если я не прав — _текущая_ версия по подходу практически повторяет iphone os? Избранные системные приложения могут выполняться в фоне, а основная вычислительная мощность отдается активному приложению?
                                            –1
                                            Избранные системные приложения могут выполняться в фоне, а основная вычислительная мощность отдается активному приложению?


                                            По сути да.
                                            Но это очень ранний релиз, это стоит учитывать.

                                            Ну и говоря откровенно, то сейчас в публичном эмуляторе приложения не приостанавливаются, а продолжают работать в фоне :) Но это только CTP, в релизе так не будет.
                                              +2
                                              Если я не ошибаюсь, WM Classic (это же теперь так называется?) тоже обещает прибивать фоновые приложения когда нужно. Но пользователь этого не дожидается и начинает материться на тормоза намного раньше. Может тоже сначала сделали без прибивания, а потом так и оставили?
                                            +1
                                            Все описанное в статье уже так или иначе реализовано в iPhone OS и Google Android.

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

                                            Google Android — приложение может состоять из нескольких частей: Activity — отображает интерфейс пользователя и может быть закрыта ОС при сворачивании, Service — может работать в фоне и предназначен для фоновых задач.
                                              +1
                                              Странно, что многие думают, что в айфоне нет многозадачности. А между тем многие приложения не закрываются, а именно сворачиваются. Например, звонилка всегда загружается вместе с телефоном. Плеер с сафари просто сворачиваются при закрытии. Кроме того, можно сворачивать любое приложение, используя модификации. Это говорит лишь об одном: многозадачность есть, но сторонние приложения автоматически закрываются для освобождения памяти.
                                                +1
                                                Давайте тогда разделять многозадачность на уровне ОС (она есть во всех упомянутых мобильных ОС) и на многозадачность на уровне пользователя (можно ли запускать фоновые приложения типа IM).

                                                Поскольку фоновые приложения есть и будут всегда (та же телефонная звонилка, музыкальный плеер) то по-идее нужно говорить об «ограниченной многозадачности».
                                                  0
                                                  Да, но «искусственно ограниченной», т.е. это можно обойти. Единственное, что мешает — принудительная выгрузка приложений из памяти при её недостаточности. Так что да, не совсем честная многозадачность получается.
                                              0
                                              Вот проблема-то. Ну сделают MS флажок для приложений: хочешь, работает в фоне постоянно (кстати, не думаю, что пользователи вашей программы будут счастливы, что вы сажаете им батарею без надобности), а не хочешь, винда сама выгрузит и загрузит когда нужно.
                                                +2
                                                почему-то об этом забывают, но многозадачность (в теперяшнем понимании этого слова) появилась в той же MacOS только с 5-й версии, в 1987-м году. До этого момента пользователь мог работать только с одной программой — отсюда кстати и такое странное расположение меню в современных макосях, наследие доисторического прошлого.

                                                Проблема многозадачности на мобильных устройствах кроется в дизайне пользовательского интерфейса, в первую очередь в отсутствии перекрывающихся окон, так как приложения занимают экран целиком, что вполне логично, учитывая небольшие размеры экрана. При этом смысл в реальной (многооконной) многозадачности почти полностью теряется. Вторая проблема — эффективный менеджмент запущенных программ. Даже на больших компьютерах неподготовленные пользователи (которых, к слову, большинство) имеют проблемы с управлением несколькими одновременно запущенными программами, что уж говорить про телефоны?

                                                Вызывают удивление посты защитников настоящей многозадачности — я подозреваю, что эти люди не использовали ни айфон, как пример «однозадачного» телефона, ни какое-либо устройство на базе WM, где одним из развлечений является постоянный поход в системные настройки с целью убить ненужные приложения («крестику» привет!). Таскменеджеры несколько упрощают задачу по отлову нежелательных приложений, но это лекарство ослабляет боль, а не лечит болезнь.

                                                По большому счету, единственная обоснованная претензия — невозможность иметь IM на фоне, но и с этим можно бороться даже в рамках однозадачной модели UI. Замечу так же, что далеко не все решения продиктованы только производителем железа/софта, многое зависит и от желаний сотовых сетей, в которых конечные устройства будут сущестовать. СМС-траффик приносит хорошую прибыль операторам, но кто же будет писать смски в случае _действительно_ широкого распространения фоновых IM?
                                                  0
                                                  Ну почему же. С айфоном знаком не по наслышке, WM пользуюсь постоянно, в том числе и менеджерами приложений. Честно говоря, с установкой менеджера приложений меня перестала беспокоить проблема фоновых задач. Все, что запущено, требует постоянной работы, лишнего ничего не болтается.
                                                  Помимо IM в фоне бывают Opera Mobile с открытыми страницами, музыкальный плеер, текстовый редактор с несохраненным текстом, файервол, программа для отсеивания нежелательных звонков и др. (не все одновременно, конечно же). Да, я знаю, что некоторые приложения «из списка» могут оставаться работоспособными и в случае отсутствия многозадачности, но лично мне хотелось бы, чтобы этот список определялся не только производителем ОС. Если такая возможность будет в Windows Phone 7, то вопрос о многозадачности на мой взгляд будет снят.
                                                    0
                                                    Уже говорил, но повторюсь еще раз. Возможность разработки «фоновых приложений» будет у всех разработчиков.
                                                    0
                                                    >отсюда кстати и такое странное расположение меню в современных макосях, наследие доисторического прошлого
                                                    Вы уверенны? По моему мнению, универсальное единое меню (сверху экрана, а не в каждом окне) сделано просто потому, что это удобно :) Все равно, какая бы не была многозадачность, два меню двух отдельных приложений одновременно использовать толком невозможно просто потому, что у компьютера всего одна мышь :) В замен есть единообразие и постоянство: где бы небыло окно, его меню всегда будет на привычном месте. Кстати, данное меню было еще на операционной системе Lisa Office System на компьютерах Apple Lisa с 1983 года, которая, кстати, таки поддерживала многозадачность, но в те времена толку с нее было минимум — все просто больше тормозило :)
                                                      0
                                                      Я пользователь iPhone достаточно долгое время и человек, хорошо понимающий, зачем нужна многозадачность. Среди прочего мне она нужна, чтобы переключаться между часто используемыми программами, ждать загрузки которых довольно долго, а если они еще и не сохраняют состояние, то много времени придется потратить. Редко используемые я просто закрываю. Я слежу за нагруженностью смартфона еще на Nokia 3230, где всего лишь 8 мегабайт свободной оперативной памяти. Прописью — восемь. И при этом на Nokia 3230 можно было работать с несколькими программами без особых тормозов.
                                                      И вот еще парочка обоснованных претензий — разговор по скайпу в фоне и интернет-радио в фоне.
                                                      Моя мечта — телефон, в котором была бы опция «Телефон используется — новичком/профессионалом».
                                                        0
                                                        > Среди прочего мне она нужна, чтобы переключаться между часто используемыми программами, ждать
                                                        > загрузки которых довольно долго, а если они еще и не сохраняют состояние, то много времени придется
                                                        > потратить.

                                                        например? На ум приходят только игры, но держать игры на фоне не кошерно даже на десктопе. А каких-либо других тяжелых приложений, которые долго бы грузились на 3gs я пока что не встречал. Наверняка они есть, но это скорее исключение, не влияющее на 99.9% пользователей, так ведь?

                                                        > Я слежу за нагруженностью смартфона еще на Nokia 3230, где всего лишь 8 мегабайт свободной
                                                        > оперативной памяти. Прописью — восемь. И при этом на Nokia 3230 можно было работать с несколькими
                                                        > программами без особых тормозов.

                                                        «ослабляет боль, но не лечит болезнь»

                                                        > И вот еще парочка обоснованных претензий — разговор по скайпу в фоне и интернет-радио в фоне.

                                                        Разговор по скайпу — это один из примеров «взлома» процесса перетекания денег из кармана пользователя в карман сотового оператора, аналогично СМС vs. IM, т.е. проблема тут вовсе не в многозадачности, а в несколько других материях.

                                                          0
                                                          > А каких-либо других тяжелых приложений, которые долго бы грузились на 3gs я пока что не встречал.

                                                          Ну у меня iPhone 3G. И потом взять хотя бы мобильные IM-клиенты, которым свойственно довольно долго восстанавливать соединение. Или возьмем читалку PDF GoodReader (с которой вдруг понадобилось на пару минут переключиться на другое приложение) — программа открывается, открывается PDF-файл, все это занимает около 10 секунд, что для меня довольно долго по сравнению с тем, чтобы просто развернуть программу, с которой переключился на пару минут на другую программу. Многозадачность ускоряет работу, просто надо уметь ею пользоваться, чтобы не возникло тормозов — к слову, мой старый Nokia N70 можно было очень сильно нагружать различными программами и все равно тормозов не было бы и аккумулятор бы выдерживал до конца дня.

                                                          > «ослабляет боль, но не лечит болезнь»

                                                          Намек не понял.

                                                          > Разговор по скайпу — это один из примеров «взлома» процесса перетекания денег из кармана пользователя в карман сотового оператора, аналогично СМС vs. IM, т.е. проблема тут вовсе не в многозадачности, а в несколько других материях.

                                                          Ну во-первых, плата за трафик. К тому же ваш пример верен только с точки зрения звонков с мобильного на мобильный скайп — с мобильного телефона на компьютерный скайп без мобильного скайпа не позвонить.
                                                            0
                                                            чтение пдф не нужно 95% пользователей смартов. особенно тяжелых.
                                                            из-за оставшихся 5% эплу пришлось бы прикручивать многозадачность, убивая время автономной работы, получая проблемы с утечкой памяти в криво написанных приложениях и разнообразные глюки.
                                                            мне лично нафиг не упала многозадачность такой ценой. минусов будет намного больше.
                                                            вообще на айфоне не могу так с ходу припомнить случай, когда я бы страдал из-за отсутсвия многозадачности. на андроиде кстати, как и на вм старой приходилось постоянно выгружать разный хлам из памяти, рискуя при этом прибить тот же будильник или почтовик.
                                                            нафиг-нафиг, эпл сделал правильный выбор.
                                                            многозадачность возможно потребуетяс на айпаде(из-за довольно большого экрана), ну так ее там приделают.
                                                              +1
                                                              > чтение пдф не нужно 95% пользователей смартов. особенно тяжелых.
                                                              Мне нужно, лично у меня в PDF на iPhone размещено несколько учебников, читать удобно. Да и PDF-читалка всего лишь пример.
                                                              > из-за оставшихся 5% эплу пришлось бы прикручивать многозадачность, убивая время автономной работы, получая проблемы с утечкой памяти в криво написанных приложениях и разнообразные глюки.
                                                              > мне лично нафиг не упала многозадачность такой ценой. минусов будет намного больше.
                                                              Почему на нокиях Н70 и 3230 с меньшим количеством оперативной памяти таких проблем нет?
                                                              > вообще на айфоне не могу так с ходу припомнить случай, когда я бы страдал из-за отсутсвия многозадачности.
                                                              А вот у меня таких случаев выше крыши — собственно потому я поставил Backgrounder + ProSwitcher.
                                                              > нафиг-нафиг, эпл сделал правильный выбор.
                                                              Ну я не из таких людей, которые считают, что все, что ни сделает их любимая компания — все к лучшему.
                                                                0
                                                                Ах да, забыл
                                                                > чтение пдф не нужно 95% пользователей смартов. особенно тяжелых.
                                                                GoodReader, значит, случайно попал в топы самых покупаемых программ на iPhone, ага.
                                                                  0
                                                                  фоновое чтение — не уточнил.
                                                                  и постоянное.
                                                                  остальных на 3гс совершенно не напрягает его загрузить почитать и закрыть.
                                                                    0
                                                                    Все равно не вижу причин, по которым pdf-клиент, просто висящий в памяти и ничего более не делающий (как бы висящий в паузе), должен тормозить телефон и тратить аккумулятор (что впрочем так и есть, доказано backgrounderом). Тем более, если скрыть программу мне надо на пару минут. Что касается нехватки RAM — для чего вытесянющую многозадачность-то придумали.
                                                                    И да, хватит сувать мне 3гс, который я вообще покупать не собираюсь.
                                                          0
                                                          а мне казалось, что MacOS стала полноценно многозадачной только в 10й версии (так называемой 'X').
                                                            +1
                                                            ну что ж вы так ее, кооперативная многозадачность — тоже многозадачность :-)
                                                            0
                                                            IM «в фоне» есть на том же айфоне благодаря push, а вот GPS трекер через push сделать проблематично.
                                                            –1
                                                            Закапывайте!

                                                              0
                                                              Интересно, а что они думают о многопоточных приложениях и многоядерных ARM-процах…
                                                                0
                                                                Много чего думаем… Лично я занимаюсь разработкой ОСей. Особенно шедулеров и протоколов.
                                                                Хочу купить Marvell Armad'у 1000 и проJtag'нуть её.

                                                                Про многоядерные решения в телефонах… Ну это ещё нада подождать.
                                                                Хотя тактико-технические характеристики современных фонов вполне позволяют поставить туда эдакий многоголовый ARM. Ну опять-же всё дело в ОСях и бюджете.
                                                                Сколько это будет стоить?
                                                                И как это всё будет портироваться?
                                                                  0
                                                                  > Про многоядерные решения в телефонах…

                                                                  Полагаю есть как минимум финансово немалый сегмент публики, желающий взять самый технически продвинутый и универсальный гэджет.
                                                                0
                                                                Мне одному это так сильно напоминает iPhone?

                                                                Забавно, как его ругали за ограниченную многозадачность*, а теперь Майкрософт копирует это решение в своем телефоне.

                                                                __
                                                                * К сожалению, iPhone не трекает GPS в фоновом режиме, но музыка, вызов и диктофон могут работать параллельно с другими приложениями.
                                                                  –1
                                                                  Такое ощущение, что вернулись времена Win 3.11.
                                                                    0
                                                                    Сейчас тон задают web сервисы для мобильных платформ (тот же twitter), а многим из них нужна многозадачность, так что MS от нее никуда не деться, учитывая, что Symbian и Android никто не отменял.
                                                                      0
                                                                      видимо когда
                                                                      команда разработчиков в данный момент занимается этим сценарием и в ближайшее время мы с вами сможем попробовать реализовать и такие сценарии

                                                                      получится реализация многозадачности точ-в-точ как в андроиде

                                                                      не для холивара :), а просто интерестно — где бы прочитать как многозадачность (или ее отсутсвие) реализовано в iPhone OS?
                                                                        +1
                                                                        Интересно, когда был жив Palm OS виндузятники критиковали его за отстутствие многозадачности, а пальмофаги доказывали, что она, дескать, не нужна, полноценная многозадачность. Много позже была точно такая же критика в сторону Яблока и айФона, и что интересно, ровно такая же аргументация сторон. Сейчас вот Майкрософт отказывается от труъ многозадачности. Интересно было бы услышать мнение людей, которые в своё время сменили Палм на ВинСЕ, а вместо айФона купили Вин-мобайл устройство именно по причине многозадачности.
                                                                          +1
                                                                          Кстати, уже тогда народ для пальмы делал плеер фоновым.
                                                                            +1
                                                                            Угу, а в неродившейся (шестой, кажется), версии Палм ОС была анонсирована как раз такая «неполноценная» многозадачность, как сейчас делают — приложения сворачиваются и занимают минимум памяти, тем не менее продолжая работать.

                                                                            Палм опередила время или мы наблюдаем откат индустрии назад, вот какой вопрос меня волнует. Хотя лично я так с того времени и не поверил, что на мобильном устройстве нужна полноценная многозадачность.
                                                                          +1
                                                                          Как раз хотел вспомнить Palm, и где он теперь. Symbian и Android представляют полноценную многозадачность, она НУЖНА. Со временем мобильные устройства будут делать все больший спектр «тяжелых» задач, где без нее не обойтись. В случае с Microsoft — совсем непонятно, зачем они отказываются от «нормального» подхода, когда он уже накатан.
                                                                            0
                                                                            А где сейчас Symbian и WinMobile? Также постепенно отмирают, как и Palm когда-то. Большинству пользователей за глаза хватает ограниченной многозадачности для нескольких постоянно используемых приложений типа плеера и браузера.
                                                                            Насчёт тяжелых задач — процессоры тоже совершенствуются, когда-нибудь появятся многоядерные ARM, подходящие для мобильных платформ, тогда появятся и ОС для них.
                                                                              0
                                                                              Symbian сдает позиции из-за неадеквата Nokia, но новые N версии на Maemo через пару лет сформируют новую нишу.

                                                                              А про WinMob вы зря — Windows 6.5 — самая удачная мобильная ОС от Microsoft, продажи девайсов на этой платформе от HTC тому подтверждение.

                                                                              Появление многоядерных ARM — уже свершившийся факт, кстати. Еще 2 года назад я гонял с двухъядерной Nokia N82? о чем речь?
                                                                                0
                                                                                Я говорил о массовом использовании, когда, например, в трети девайсов будет стоять двухъядерный процессор, что позволит распараллелить задачи без торможения активного приложения, т.к. iPhone успешно показал, что красота интерфейса и отсутствие глюков привлекают пользователей гораздо больше, чем наличие многозадачности.
                                                                                  0
                                                                                  Не вижу Apple в списке «Мировые продажи сотовых телефонов в 2009 году», он попал в категорию «Другие». На первом месте Nokia, на втором Samsung, появление двухъядерных аппаратов в развлекательном уже свершилось у обоих, передвижка в бизнес-класс — дело пары лет, а с развитием новых контент-услуг станет массовым лет через 5. Та же Windows Mobile 6 просуществовала почти столько же
                                                                                  [/offtop]
                                                                                    0
                                                                                    >Не вижу Apple в списке «Мировые продажи сотовых телефонов в 2009 году»
                                                                                    Может потому, что Apple не производит телефоны уровня Nokia 1100 и прочие бюджетные аппараты? :)
                                                                                    Посмотрите на долю Apple на рынке смартфонов и все сразу станет ясно: 25.1% на рынке США (данные comScore) или 16.6% на мировом рынке (данные ABI Research). Как по мне, очень значительная доля, как для компании, которая продает всего две модели телефонов, да и занимается телефонами всего пару лет :)
                                                                                      0
                                                                                      1. Пардон, а в каком месте смартфоны это массово
                                                                                      2. Series40 отмирает -> в будущем в «обычных телефонах» Nokia Symbian будет повсеместно, что подстегнет развитие и аппаратной части
                                                                                      [/offtop] уже был
                                                                                        0
                                                                                        Только лишь за четвертый квартал 2009 года было продано не менее 54.5 миллионов смартфонов, учитывая постоянный рост этого сегмента, мне кажется, что сегмент можно назвать массовым :)
                                                                            0
                                                                            А вот мне надо что бы мой клиент Твиттера сам обновлял состояние и мог работать в фоне, и когда Эппл это поняли и выходят на нужный путь, майкрософт наступает на те же грабли.
                                                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                                                +2
                                                                                У меня подозрение, что microsoft еще не определилась с многозадачностью и изучает реакцию пиплов на свое видение ее реализации.

                                                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                Самое читаемое