Skusim to v kratkosti spisat ako to funguje na WP, do tejto temy to moze patrit, niekomu sa moze zist pri porozumeni WP.
Jedina aplikacia, ktora sa vykonava je ta, ktora je zobrazena na obrazovke. Ziadna ina v tom momente nebezi, kedze v sucasnosti nemozes mat zobrazene dve beziace aplikacie naraz (to sa na Androide da, v kombinacii s velkym displejom je to fajn).
To, co moze
bezat na pozadi sa povodne nazyval "Agent", od WP8 sa to vola uloha "Task". Pre agenta/task plati:
- je to okliestena funkcionalita, nema UI rozhranie, pouzivatel ju neovlada,
- bezi mimo svojej aplikacie,
- pre vykonanie ma obmedzenia na CPU a RAM,
- exisuje viacero typov agentov (postupne platilo pre WP7, WP8 a WP8.1 Silverlight, od WP8.1 je to trochu inak, W10 bude este trochu inak
):
--- periodicky (scheduled) - vykonava sa priblizne kazdych 30 minut, moze pouzivat internet, ma velke obmedzenia na API, pretoze si ma vykonat svoju ulohu na pozadi (aktualizovat data, dlazdicu) a neovplyvnit pouzivatela.
--- audio - ovlada prehravanie hudby (zapne skladbu, vypne, prepne), odchytava akcie pouzivatela cez systemove audio controls. Este vacsie obmedzenia API, agent ma robit s hudbou.
--- location tracker - posledna vybrana aplikacia, ktorej pouzivatel povolil zaznamenavat polohu to moze robit periodicky na pozadi (napr. Endomondo pocas vyjazdu) v kratsich intervaloch ako 30 minut.
--- file transfer - stahovanie a nahravanie suborov na pozadi (synchronizacia fotiek do cloudu).
--- ...a mozno este nejaky agent, na ktoreho si nespominam.
Agent je male nic. Periodicke agenty* nemaju zarucene, ze budu bezat. Ak presiahnu limity, OS ich zabije sam.
Vsetky ostatne spustene aplikacie, ktore nie su zobrazene, su uspane ("suspendend", povodne nazyvane "tombstoned"), t.j. nevykonavaju sa (nezeru CPU ani baterku, iba su ulozene v RAMke). Ak OS potrebuje viac RAM (napr. prave vykonavana aplikacia), tak moze suspendnutu aplikaciu zabit (to robi OS). To, ze je aplikacia stale v RAM nema velky vplyv na
baterku (zanedbatelny), CPU nezatazuje. Akonahle sa pouzivatel prepne medzi aplikaciami, cielova sa zobudi, povodna sa uspi.
A teraz otazkaJe to pravoplatny multitasking? Nie, je to obmedzene. ALE:
- pouzivatel sa moze prepinat medzi aplikaciami akoby bezali subezne,
- neskutocne to setri prostriedky, nie len baterku, ale aj CPU -
neseka to zbytocne.
- co viem, tak podobne funguje aj iOS
A teraz, ako to je asi na Androide:
(disclaimer, neviem do detailu, mozem sa mylit)
- aplikacie mozu bezat volne na pozadi, aj ked ich pouzivatel nepouziva
- napr. prehravanie hudby zabezpecuje samotna aplikacia, ziadny agent/task - radovo vacsie naroky na CPU a RAM oproti modelu WP s jednoduchym agentom pre ovladanie hudby.
Otazka pre pouzivatela a zaujemcu o jednu z platforiem je, ci potrebuje, aby OS telefon fungoval ako OS v beznom pocitaci, aj ked to vdaka velkosti a sposobu pouzivania (UX) nema moznost vyuzit. Alebo pozaduje mobilny OS, ktory mysli na to, ze zariadenie ma reagovat na prikazy, rozumne nakladat s prostriedkami (CPU, RAM, a hlavne baterka), za cenu obmedzeni.
Ok, kratke to nebolo
*agent ako zivy tvor (James Bond) podla vzoru chlap, nezivy agent v mnoznom cisle podla dub