Me kõik teame õppetundi "multitegumtöötlus = võime teostada mitut protsessi korraga". Me kasutame seda oma arvutites, ilma et oleksime selle olemasolust eriti teadlikud. Ühe rakenduse rakenduste või akende vahel lülitumine toimub (meie jaoks) reaalajas ja me peame seda operatsioonisüsteemi võimalust iseenesestmõistetavaks.
Ülesanne erinev
Operatsioonisüsteem eraldab protsessori kõikidele rakendustele väikeste ajavahemike järel. Need ajaperioodid on nii väikesed, et me ei suuda neid märgata, mistõttu tundub, et kõik rakendused kasutavad protsessorit korraga. Võime nii arvata multitegumtöötlus iOS 4-s töötab täpselt samamoodi. See pole nii. Peamine põhjus on muidugi aku mahutavus. Kui kõik rakendused tõesti taustale tööle jääksid, peaksime ilmselt mõne tunni pärast pesa otsima.
Enamik iOS 4-ga ühilduvaid rakendusi lülitatakse pärast kodunupu vajutamist "peatatud režiimile" või unerežiimile. Analoogia võib olla sülearvuti kaane sulgemine, mis läheb kohe unerežiimi. Peale kaane avamist ärkab sülearvuti ja kõik on täpselt samas seisus nagu enne kaane sulgemist. Lisaks on rakendusi, mille avalehe nupu vajutamine põhjustab nende lõppemise. Ja selle all peame silmas reaalset lõpetamist. Arendajad saavad valida, millist neist meetoditest kasutada.
Kuid on veel üks rakenduste kategooria. Need on rakendused, mis tõesti töötavad taustal, kuigi teete oma iDevice'is midagi täiesti erinevat. Skype on hea näide, sest vajab pidevat internetiühendust. Teised näited võivad olla taustamuusikat esitavad rakendused (Pandora) või rakendused, mis nõuavad pidevat GPS-i kasutamist. Jah, need rakendused tühjendavad akut isegi taustal töötades.
Magada või maha lasta?
Teatud iOS 4-ga ühilduvad rakendused, mis tuleks pärast kodunupu vajutamist unerežiimile ("peatatud režiimile") lülitada, jätkavad taustal töötamist. Apple andis arendajatele täpselt kümme minutit aega, et rakendus saaks oma ülesande täita, olenemata sellest, mis see oli. Oletame, et laadite faili alla GoodReaderis. Järsku tahab keegi sulle helistada ja sa pead lihtsalt selle tähtsa kõne vastu võtma. Kõne ei kestnud üle kümne minuti, naasete GoodReaderi rakendusse. Fail võib olla juba alla laaditud või alles laaditakse. Mis siis, kui kõne kestab üle kümne minuti? Rakendus, meie puhul GoodReader, peab oma tegevuse lõpetama ja teatama iOS-ile, et selle saab magama panna. Kui ta seda ei tee, lõpetab iOS ise ta halastamatult.
Nüüd teate, mis vahe on "mobiilsel" ja "lauaarvutil" multitegumtööl. Kui arvuti jaoks on oluline rakenduste vahel vahetamise sujuvus ja kiirus, siis mobiilseadmete puhul on aku vastupidavus alati kõige olulisem. Ka multitegumtöö tuli selle faktiga kohandada. Seetõttu ei näe pärast selle artikli lugemist kaks korda Kodu nuppu vajutades enam "taustal töötavate rakenduste riba", vaid sisuliselt ainult "viimati kasutatud rakenduste loendit".
Autor: Daniel HruškaAllikas: onemoretap.com
hmm, huvitav :) Arvasin alati, et see on alati sarnane sellele, kuidas seda saab Unixis teha. Et rakendusele on eraldatud null CPU aega ja protsess istub lihtsalt mällu, on kõik ressursid eraldatud. seega pidin selle kustutamiseks kaks korda kodu vajutama ja rakenduse kohe peatama. Kas see tähendab, et isegi kui alumisel peidetud lehel on rakenduse ikoon, on rakendus ikka veel kaua aega tagasi suletud (pärast 10 minutit)?
Alumises loendis on lihtsalt viimati avatud rakendused, millest mõned saavad endiselt töötada, mõned on peatatud ja mõned on täielikult lõpetatud. Rakenduse käsitsi eemaldamisel loendist on "kõrvalmõju", et kui see juhtub töötama (või peatatakse), siis see lõpetatakse.
Rakendus peab nendest 10 lisaminutist ise rääkima ja pole garanteeritud, et see neid saab.
Noh, see ei vabastanud mu kinnisideest rakendust loendist sulgeda (mis siis, kui see kogemata ressursse sööb, eks? :-D)
Ma saan aru, et 10 minutit on mõeldud rakendustele, mis peavad töötama taustal ja ei kuulu kategooriasse "skype, GPS ja muusika taasesitus". Teised rakendused lülituvad peatatud režiimile ja jäävad mällu, kuni mälu on muudeks asjadeks vaja.
Peatatud režiimi eeliseks on see, et kui teil on vaja rakendus tappa, siis te ei kaota selle andmeid, kõik salvestatakse peatatud režiimile ülemineku hetkel.
või nt taasesituse puhul käsu bg / fg ekvivalent
Ja kuidas on lugu mängijaga või muude rakendustega, mis töötavad taustal mis tahes aja jooksul? Kas ma pean arendajaks "valima" või peab selle Apple'i kuidagi heaks kiitma?
Selleks, et rakendus tõesti piiramatu aja taustal töötaks, peab see tegema (registreerima) ühe järgmistest toimingutest:
- Kasutage asukohateenuseid (GPS)
- Esitage taustal muusikat
- Kasutage VOIP-i (Voice over IP)
Pealkirja järgi (pilk kapoti alla) eeldasin, et artikkel sisaldab mõnevõrra põhjalikumat selgitust koos tehniliste detailidega. See näeb rohkem välja nagu artikli perex. Kui see on perex, siis millal on järg? Kas saate raha tagasi? :-)
ja mida sa täpsemalt teada tahaksid?
Artiklilt, mille pealkirjas on "kapoti all", ootaksin üksikasjalikku tehnilist kirjeldust (autor võiks analüüsida näiteks rakenduste vahetamise üldkulusid või seda, kuidas käsitletakse samaaegset juurdepääsu süsteemiressurssidele), võrdlust teiste mudelitega. (näiteks jailpurustatud iPhone'iga). Ideaalne on see mõne mõõtmisega varundada. Ma lihtsalt ootasin artiklilt, mille pealkirjas on "kapoti all", palju enamat kui seda väga pealiskaudset kirjeldust.
Kas on mõni icq klient, mis töötab pidevalt taustal nagu skype ja ei katkesta ühendust?
rakendusel on peatamisrežiimi minekuks 10 sekundit, mitte 10 minutit... ja selle protsessi käigus võivad mõned osad taustateenustes "rippuda" või mitte, millest mõned on juba ülalpool loetletud - seda nimetab Apple "nutikaks" "mitmetegumtöötlus... siis tulistas süsteem ta maha
Rakendus võib nõuda lisaaega, kui midagi alla laaditakse, laaditakse üles või töödeldakse. Sellel pole midagi pistmist GPS-i, VoIP-i ega muusika esitamisega, mis töötavad piiramatu aja minimalistlikus režiimis.