Jak naprawdę działa multitasking w iOS?

Jak naprawdę działa multitasking w iOS?02.12.2012 11:00
Multitasking iOS
Krystian Bezdzietny

Nie raz może spotkałeś się z negatywnymi opiniami na temat wielozadaniowości iOS-a, w których zarzuca się Apple’owi, że mechanizm ten jest nieudolny i wymaga poprawy. Mimo to inżynierowie z Cupertino nic sobie z tego nie robią, a multitasking pozostaje niezmienny. Dlaczego?

Otóż multitasking i zarządzanie działającymi w tle aplikacjami w systemie Apple'a (podobnie jak w Androidzie czy Windows Phone) są bardziej "inteligentne" niż może się wydawać na pierwszy rzut oka. iOS może nie pozwala na pełne działanie otwartych w tle programów, ale są od tej reguły wyjątki. Zasadnicze pytanie brzmi: dlaczego po naciśnięciu przycisku Home aktualnie używania aplikacja znika z ekranu, nie działa w tle (o czym przekonujesz się po jej ponownym włączeniu), a mimo to zużywa pamięć RAM?

[solr id="komorkomania-pl-137364" excerpt="0" image="0" words="20" _url="http://michalmynarski.komorkomania.pl/4959,przyszlosc-here-na-ios-maluje-sie-w-ponurych-barwach" _mphoto="nokia-here-ios-137364-25-315dd94.jpg"][/solr][block src="solr" position="inside"]3098[/block]

Dzieje się tak dlatego, że została ona zawieszona. W przypadku multitaskingu iOS-a należy wyróżnić bowiem aż pięć stanów działania aplikacji (system automatycznie nimi zarządza w zależności od interakcji użytkownika):

  • Not running (niedziałająca) - działanie aplikacji zostało zakończone lub nie była ona uruchomiona;
  • Inactive (nieaktywna) - aplikacja jest wyświetlona na pierwszym planie, ale nie odbiera akcji (np. urządzenie zostanie zablokowane podczas jej używania);
  • Active (aktywna) - aplikacja w pełni funkcjonuje, jest wyświetlona;
  • Background (w tle) - aplikacja nie jest wyświetlona, ale wciąż przetwarza kod;
  • Suspended (zawieszona) - aplikacja jest wciąż obecna w pamięci, ale nie przetwarza kodu.

Gdy program jest więc zawieszony system nie poświęca na wykonywanie jego kodu mocy obliczeniowej (aplikacja nie pobiera energii), a pamięć RAM jest zajęta po to, aby w razie ponownego uruchomienia programu iOS natychmiastowo powrócił do używanej wcześniej zawartości.

Gdy takich „zawieszonych” aplikacji się uzbiera i pojawi się zapotrzebowanie na pamięć dla nowo uruchamianego programu, to iPhone automatycznie wyłączy aplikacje zawieszone (przejście do niedziałającej) w kolejności od najdawniej używanej. Istnieją jednak pewne wyjątki.

Zawieszanie po wykonaniu określonego zadania

Po zamknięciu aplikacji jej kod jest przetwarzany mniej więcej przez pięć sekund, a następnie jest ona zawieszana. Deweloper może jednak zastrzec, aby zawieszenie nie następowało od razu po naciśnięciu Home’a, ale dopiero wtedy, gdy aplikacja wykona jakieś zadanie. Nie może to jednak trwać dłużej niż 10 minut.

[solr id="komorkomania-pl-137437" excerpt="0" image="0" words="20" _url="http://komorkomania.pl/4974,patent-na-cyfrowe-przewijanie-stron-w-rekach-applea" _mphoto="img-2603-137437-252x168-86bc6f50.jpg"][/solr][block src="solr" position="inside"]3099[/block]

Przykładowo aplikacja służy pobieraniu muzyki. Deweloper w tym przypadku może określić, aby jego program po wyjściu nie był od razu zawieszany, lecz dopiero wtedy gdy np. pobierze jakiś utwór.

 Nieprzerwane działanie w tle

  • aplikacje** odtwarzające dźwięk,** np. aplikacje umożliwiające strumieniowe odtwarzanie radia;
  • aplikacje korzystające z danych lokalizacji, np. ciągle kierująca nas nawigacja (aplikacja jest w pełni aktywna będąc zminimalizowaną);
  • aplikacje VoIP, np. Skype (program działając w tle będzie informował o przychodzących połączeniach);
  • aplikacje pokroju Kiosku, które automatycznie aktualizują swoją zawartość;
  • aplikacje otrzymujące komunikaty od zewnętrznych akcesoriów.

Gdy aplikacja z ww. grupy zostanie uruchomiona, system będzie przeznaczał na jej działanie nie tylko pamięć RAM, ale też procesor i energię. Są to jedyne przypadki gdzie użytkownik sam musi wyłączyć program aby odzyskać niepotrzebnie poświęcaną na jego działanie pamięć RAM.

[solr id="komorkomania-pl-137181" excerpt="0" image="0" words="20" _url="http://komorkomania.pl/4978,aplikacja-filmweb-spelnia-oczekiwania-polskich-uzytkownikow" _mphoto="img-2592-137181-175x168-1a2ad960.jpg"][/solr][block src="solr" position="inside"]3100[/block]

Co ciekawe, jeśli deweloper planuje, aby jego aplikacja wykonywała działanie w tle, to podczas udostępniania jej w App Store musi określić odpowiednią zmienną w pliku konfiguracyjnym zgłaszanej pozycji. Dzięki temu pracownicy Apple'a będą znali zamiar dewelopera, a następnie sprawdzą działanie aplikacji w celu wykrycia potencjalnych nadużyć.

Paradoks paska multitaskingu

Wbrew powszechnemu przekonaniu zadaniem paska multitaskingu nie jest wyświetlanie aplikacji działających w tle. Otóż ma on służyć informowaniu użytkownika o wszystkich ostatnio uruchomionych programach, bez znaczenia w jakim stanie one występują. Warto zauważyć, że na pasku nie znajdziesz ikony aplikacji aktywnej.

Reasumując, użytkownicy wcale nie muszą ręcznie wyłączać działających w tle aplikacji, ponieważ iOS robi to sam. Wbrew powszechnej opinii większa liczba uruchomionych aplikacji wcale nie musi zwiększać zużycia energii, czego obawia się wielu użytkowników. Mimo zarzutów, że multitasking w iPhone'ie nie ma nic wspólnego z tym z MeeGo czy Symbiana, to w żaden sposób nie jest gorszy niż rozwiązanie (całkiem podobne zresztą) z Androida, gdzie także sam system zarządza aplikacjami w tle.

Źródło: speirs

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.