Vsi poznamo lekcijo "večopravilnost = sposobnost izvajanja več procesov hkrati". Uporabljamo ga v naših računalnikih, ne da bi se posebej zavedali njegove prisotnosti. Preklapljanje med aplikacijami ali okni ene aplikacije poteka (za nas) v realnem času in to zmožnost operacijskega sistema jemljemo kot samoumevno.
Naloga drugačna
Operacijski sistem dodeli procesor vsem aplikacijam v majhnih časovnih intervalih. Ta časovna obdobja so tako majhna, da jih ne opazimo, zato se zdi, kot da vse aplikacije uporabljajo procesor hkrati. Lahko bi tako mislili večopravilnost v iOS 4 deluje popolnoma enako. Ni tako. Glavni razlog je seveda kapaciteta baterije. Če bi vse aplikacije res delovale v ozadju, bi verjetno v nekaj urah morali iskati socket.
Večina aplikacij, ki so združljive z iOS 4, se po pritisku gumba Domov preklopi v "zaustavljen način" ali v način spanja. Analogija bi lahko bila zapiranje pokrova prenosnika, ki takoj preklopi v način mirovanja. Po odprtju pokrova se prenosnik zbudi in vse je v popolnoma enakem stanju kot pred zaprtjem pokrova. Poleg tega obstajajo aplikacije, pri katerih se s pritiskom na gumb Domov onemogočijo. In s tem mislimo na pravo odpoved. Razvijalci lahko izbirajo, katero od teh metod bodo uporabili.
Vendar obstaja še ena kategorija aplikacij. To so aplikacije, ki resnično delujejo v ozadju, čeprav na napravi iDevice počnete nekaj povsem drugega. Skype je dober primer, ker potrebuje stalno internetno povezavo. Drugi primeri so aplikacije, ki predvajajo glasbo v ozadju (Pandora) ali aplikacije, ki zahtevajo stalno uporabo GPS. Da, te aplikacije praznijo vašo baterijo, tudi če delujejo v ozadju.
Spati ali ustreliti?
Določene aplikacije, združljive z iOS 4, ki bi jih bilo treba po pritisku gumba Domov preklopiti v stanje spanja (preklopiti v "zaustavljen način"), še naprej delujejo v ozadju. Apple je razvijalcem dal natanko deset minut časa, da aplikacija opravi svojo nalogo, kakršna koli že je. Recimo, da prenašate datoteko v GoodReader. Nenadoma vas nekdo želi poklicati in preprosto morate sprejeti ta pomemben klic. Klic ni trajal več kot deset minut, vrnili se boste v aplikacijo GoodReader. Datoteka je morda že prenesena ali pa se še prenaša. Kaj pa, če klic traja več kot deset minut? Aplikacija, v našem primeru GoodReader, bo morala ustaviti svojo dejavnost in iOS-u sporočiti, da jo lahko preklopi v stanje mirovanja. Če tega ne stori, jo bo neusmiljeno ukinil sam iOS.
Zdaj poznate razliko med "mobilno" in "namizno" večopravilnostjo. Medtem ko sta za računalnik pomembni pretočnost in hitrost preklapljanja med aplikacijami, je za mobilne naprave vedno najpomembnejša življenjska doba baterije. Temu dejstvu je bilo treba prilagoditi tudi večopravilnost. Zato po branju tega članka, če dvakrat pritisnete gumb Domov, ne boste več videli "vrstice aplikacij, ki se izvajajo v ozadju", ampak v bistvu le "seznam nedavno uporabljenih aplikacij".
Avtor: Daniel HruškaVir: onemoretap.com
hmm, zanimivo :) Vedno sem mislil, da je vedno podobno, kot je to mogoče narediti na Unixu. Da je aplikaciji dodeljen nič procesorskega časa in da proces samo sedi v pomnilniku, so vsi viri dodeljeni. zato sem moral dvakrat pritisniti domov in takoj ustaviti aplikacijo, da jo izbrišem. Ali to torej pomeni, da je aplikacija že zdavnaj zaprta (po 10 minutah) tudi če je na spodnjem skritem listu ikona aplikacije?
Na spodnjem seznamu so samo nazadnje odprte aplikacije, pri čemer nekatere še lahko delujejo, nekatere so začasno ustavljene, nekatere pa popolnoma zaprte. Ročno odstranjevanje aplikacije s seznama ima "stranski učinek", da bo prekinjena, če se izvaja (ali je začasno ustavljena).
Aplikacija mora sama povedati o teh 10 dodatnih minutah in ni zagotovljeno, da jih bo dobila.
No, s tem se nisem znebila moje obsedenosti z zapiranjem aplikacije s seznama (kaj pa če slučajno žre vire, kajne? :-D)
Kolikor razumem, je 10 minut za aplikacije, ki morajo delovati v ozadju in ne spadajo v kategorijo "skype, GPS in predvajanje glasbe". Druge aplikacije preklopijo v način mirovanja in ostanejo v pomnilniku, dokler pomnilnik ni potreben za druge stvari.
Začasno ustavljeni način ima to prednost, da če morate uničiti aplikacijo, ne boste izgubili njenih podatkov, vse bo shranjeno v trenutku preklopa na začasno ustavljeni način.
ali, v primeru npr. predvajanja, enakovredno ukazu bg / fg
Kaj pa predvajalnik ali druge aplikacije, ki tečejo v ozadju poljubno dolgo? Mislim, ali lahko "izberem" kot razvijalec ali mora to nekako odobriti Apple?
Da aplikacija resnično deluje v ozadju neomejeno časa, mora narediti (registrirati) eno od naslednjih dejanj:
– Uporabite lokacijske storitve (GPS)
– Predvajanje glasbe v ozadju
– Uporabite VOIP (glas prek IP-ja)
Glede na naslov (pogled pod pokrovom) sem pričakoval, da bo članek vseboval nekoliko obsežnejšo razlago s tehničnimi podrobnostmi. To izgleda bolj kot perex k članku. Če je perex, kdaj bo nadaljevanje? Ali lahko dobite povračilo? :-)
in kaj bi radi izvedeli bolj podrobno?
Od članka z naslovom "pod pokrovom" bi pričakoval podroben tehnični opis (avtor bi lahko analiziral npr. stroške pri preklapljanju med aplikacijami ali kako poteka hkratni dostop do sistemskih virov), primerjavo z drugimi modeli. (na primer z zlomljenim iPhoneom). Idealno je, da to podkrepite z nekaj meritvami. Enostavno sem pričakoval veliko več od članka, ki ima v naslovu "pod kapo" kot ta zelo površen opis.
Ali obstaja kakšen odjemalec icq, ki deluje neprekinjeno v ozadju kot skype in ne prekine povezave?
aplikacija ima 10 sekund, da preide v način mirovanja, ne 10 minut ... in med tem procesom lahko nekateri deli "visijo" na zalednih storitvah, od katerih so nekatere že naštete zgoraj - temu Apple pravi "pametni" "večopravilnost.... potem jo je sistem sestrelil
Aplikacija lahko zahteva dodaten čas, če se nekaj prenaša, nalaga ali obdeluje. Nima nobene zveze z GPS-om, VoIP-om ali predvajanjem glasbe, ki tečejo v minimalističnem načinu neomejen čas.