iOS жүйесінде көп тапсырманы орындау қалай жұмыс істейтінін білмейтіндер әлі де көп. Алдымен, бұл нақты көп тапсырма емес, жүйеге немесе пайдаланушыға ауыртпалық түсірмейтін өте ақылды шешім екенін атап өткен жөн.
iOS жүйесінде фондық режимде жұмыс істейтін қолданбалар операциялық жадты толтырады деген ырымдарды жиі естуге болады, бұл жүйенің баяулауына және батареяның қызмет ету мерзіміне әкеледі, сондықтан пайдаланушы оларды қолмен өшіруі керек. Көптапсырмалар тақтасында барлық іске қосылған фондық процестердің тізімі емес, тек ең соңғы іске қосылған қолданбалар бар. Сондықтан пайдаланушы кейбір жағдайлардан басқа фондық режимде жұмыс істейтін процестер туралы алаңдамауы керек. Басты түймесін басқан кезде, қолданба әдетте ұйқы режиміне өтеді немесе жабылады, осылайша ол бұдан былай процессорды немесе батареяны жүктемейді және қажет болса, қажетті жадты босатады.
Сондықтан бұл сізде ондаған процестер орындалған кезде толыққанды көп тапсырма емес.Тек бір қолданба әрқашан алдыңғы қатарда жұмыс істейді, ол кідіртіледі немесе қажет болған жағдайда толығымен өшіріледі. Фондық режимде тек бірнеше қосымша процестер орындалады. Сондықтан iOS жүйесінде қолданбаның істен шығуын сирек кездестіресіз, мысалы, Android жұмыс істеп тұрған қолданбаларға толып кетті, оны қолданушы қарауы керек. Бір жағынан, бұл құрылғымен жұмыс істеуді жағымсыз етеді, ал екінші жағынан, мысалы, баяу іске қосуды және қолданбалар арасындағы ауысуды тудырады.
Қолданбаның орындалу уақыты түрі
iOS құрылғыңыздағы қолданба осы 5 күйдің бірінде:
- Жүгіру: қолданба іске қосылып, алдыңғы қатарда жұмыс істейді
- Фон: ол әлі жұмыс істейді, бірақ фондық режимде жұмыс істейді (басқа қолданбаларды пайдалана аламыз)
- Уақытша тоқтатылды: ЖЖҚ әлі де қолданылуда, бірақ жұмыс істемейді
- Белсенді емес: қолданба жұмыс істеп тұр, бірақ жанама пәрмендер (мысалы, қолданба іске қосылған кезде құрылғыны құлыптаған кезде)
- Жұмыс істемейді: Қолданба тоқтатылды немесе басталмады
Мазаламау үшін қолданба фонға өткенде шатасу пайда болады. Басты түймесін басқанда немесе қолданбаны (iPad) жабу үшін қимылды пайдаланғанда, қолданба фондық режимге өтеді. Қолданбалардың көпшілігі бірнеше секунд ішінде тоқтатылады (Олар iDevice жедел жадында сақталады, сондықтан олар жылдам іске қосылады, олар процессорды көп жүктемейді және осылайша батареяның қызмет ету мерзімін үнемдейді) Егер қолданба жадты пайдалануды жалғастыра берсе, сізде оны босату үшін қолмен жою. Бірақ мұны істеудің қажеті жоқ, өйткені iOS мұны сіз үшін жасайды. Егер сізде фондық режимде тоқтатылған талап етілетін қолданба болса, мысалы, үлкен оперативті жадты пайдаланатын ойын, қажет болғанда iOS оны автоматты түрде жадтан жояды және қолданба белгішесін түрту арқылы оны қайта іске қосуға болады.
Бұл күйлердің ешқайсысы көп тапсырма жолағында көрсетілмейді, қолданба тоқтатылғанына, кідіртілгеніне немесе фондық режимде жұмыс істеп тұрғанына қарамастан, панель тек жақында іске қосылған қолданбалардың тізімін көрсетеді. Сондай-ақ, қазір жұмыс істеп тұрған қолданбаның Көп тапсырма тақтасында көрсетілмейтінін байқауыңыз мүмкін
Фондық тапсырмалар
Әдетте, «Негізгі» түймесін басқан кезде қолданба фондық режимде жұмыс істейді, ал егер оны пайдаланбасаңыз, ол бес секунд ішінде автоматты түрде кідіртіледі. Сондықтан, мысалы, подкастты жүктеп алып жатсаңыз, жүйе оны жұмыс істеп тұрған қолданба ретінде бағалайды және тоқтатуды он минутқа кешіктіреді. Кем дегенде он минуттан кейін процесс жадтан босатылады. Қысқасы, жүктеп алуды аяқтау үшін 10 минуттан артық уақыт кетпесе, «Негізгі» түймесін басу арқылы жүктеуді тоқтату туралы алаңдамаудың қажеті жоқ.
Фондағы белгісіз жүгіру
Әрекетсіздік жағдайында жүйе қолданбаны бес секунд ішінде тоқтатады, ал жүктеп алған жағдайда тоқтату он минутқа кешіктіріледі. Дегенмен, фондық режимде жұмыс істеуді қажет ететін қолданбалардың аз саны бар. Төменде iOS 5 жүйесінде фондық режимде шексіз жұмыс істей алатын қолданбалардың кейбір мысалдары берілген:
- Дыбысты ойнататын және біраз уақытқа үзілуі керек қолданбалар (телефон қоңырауы кезінде музыканы кідірту, т.б.),
- Орналасқан жеріңізді бақылайтын қолданбалар (навигациялық бағдарламалық құрал),
- VoIP қоңырауларын қабылдайтын қолданбалар, мысалы, Skype қолданбасын пайдалансаңыз, қолданба фондық режимде болса да қоңырауды қабылдай аласыз,
- Автоматты жүктеулер (мысалы, Newsstand).
Барлық қолданбалар тапсырманы орындамайтын болса (мысалы, фондық жүктеулер) жабылуы керек. Дегенмен, жергілікті пошта қолданбасы сияқты фондық режимде үздіксіз жұмыс істейтін ерекше жағдайлар бар. Егер олар фондық режимде жұмыс істеп тұрса, олар жадты, процессорды пайдалануды алады немесе батареяның қызмет ету мерзімін қысқартады
Фондық режимде шексіз жұмыс істеуге рұқсат етілген қолданбалар музыка ойнаудан бастап жаңа Подкаст эпизодтарын жүктеп алуға дейін жұмыс істеп тұрған кезде барлығын жасай алады.
Жоғарыда айтқанымдай, пайдаланушыға фондық режимде жұмыс істейтін қолданбаларды жабудың қажеті жоқ. Мұның жалғыз ерекшелігі - фондық режимде жұмыс істеп тұрған қолданбаның құлауы немесе ұйқыдан дұрыс оянбауы. Содан кейін пайдаланушы көп тапсырма жолағында қолданбаларды қолмен жаба алады, бірақ бұл сирек болады.
Осылайша, жалпы алғанда, фондық процестерді басқарудың қажеті жоқ, өйткені жүйе оларды өзі реттейді. Сондықтан iOS өте жаңа және жылдам жүйе.
Әзірлеушінің көзқарасы бойынша
Қолданба көп тапсырманың бөлігі ретінде барлығы алты түрлі күймен әрекет ете алады:
1. applicationWillResignActive
Аудармада бұл күй қолданбаның болашақта (бірнеше миллисекунд мәселесі) белсенді қолданба (яғни алдыңғы қатардағы қолданба) ретінде жұмыстан шығатынын білдіреді. Бұл, мысалы, қолданбаны пайдалану кезінде қоңырауды қабылдау кезінде орын алады, бірақ сонымен бірге бұл әдіс қолданба фондық режимге өткенге дейін осы күйді тудырады, сондықтан бұл өзгерістерді ескеру қажет. Бұл әдіс, мысалы, кіріс қоңырау болған кезде орындайтын барлық әрекеттерді тоқтата тұру және қоңыраудың соңына дейін күту үшін де қолайлы.
2. applicationDidEnterBackground
Күй қолданбаның фондық режимге өткенін көрсетеді. Әзірлеушілер бұл әдісті міндетті түрде фондық режимде іске қосуды қажет етпейтін барлық процестерді тоқтата тұру және пайдаланылмаған деректер мен басқа процестердің жадын тазалау үшін қолдануы керек, мысалы, мерзімі біткен таймерлер, міндетті түрде қажет болмайтын жадтан жүктелген кескіндерді тазалау немесе жабу. қолданба үшін фондық режимде қосылымдарды аяқтау маңызды болмаса, серверлермен қосылымдар. Әдіс қолданбада шақырылған кезде, оның кейбір бөлігі фондық режимде іске қосылуы қажет болмаса, ол қолданбаны толығымен тоқтата тұру үшін пайдаланылуы керек.
3. applicationWillEnterForeground
Бұл күй қолданба белсенді күйге ауысатын бірінші күйге қарама-қарсы. Күй жай ғана ұйықтайтын қолданбаның фондық режимнен басталып, келесі миллисекундтарда алдыңғы қатарда пайда болатынын білдіреді. әзірлеушілер бұл әдісті қолданба фондық режимде болған кезде белсенді емес кез келген процестерді жалғастыру үшін пайдалануы керек. Серверлерге қосылымдарды қалпына келтіру керек, таймерлер қалпына келтірілу керек, суреттер мен деректер жадқа жүктеледі және басқа да қажетті процестер пайдаланушы жүктелген қолданбаны қайта көрмес бұрын ғана жалғаса алады.
4. applicationDidBecomeActive
Күй қолданбаның алдыңғы қатарға қалпына келтірілгеннен кейін ғана белсенді болғанын көрсетеді. Бұл пайдаланушы интерфейсіне қосымша түзетулер енгізу немесе UI бастапқы күйіне қайтару және т.б. үшін пайдаланылуы мүмкін әдіс. Бұл шын мәнінде пайдаланушы дисплейде қолданбаны көріп тұрған сәтте орын алады, сондықтан оны орындау қажет. осы әдісте және алдыңғы әдісте не болатынын сақтықпен анықтаңыз. Олар бірнеше миллисекундтық айырмашылықпен бірінен соң бірі шақырылады.
5. қолданба тоқтатылады
Бұл күй қолданбадан шығудан бірнеше миллисекунд бұрын, яғни қолданба іс жүзінде аяқталмай тұрып орын алады. Көп тапсырмадан қолмен немесе құрылғыны өшірген кезде. Әдіс өңделген деректерді сақтау, барлық әрекеттерді аяқтау және енді қажет болмайтын деректерді жою үшін қолданылуы керек.
6. applicationDidReceiveMemoryWarning
Бұл ең көп талқыланатын соңғы күй. Ол қажет болған жағдайда жүйелік ресурстарды қажетсіз пайдаланатын болса, қолданбаны iOS жадынан жоюға жауапты. Мен iOS-тың фондық қолданбалармен не істейтінін нақты білмеймін, бірақ ол басқа процестерге ресурстарды шығару үшін қолданба қажет болса, ол оған кез келген ресурстарды шығару туралы жад ескертуімен шақырады. Сондықтан бұл әдіс қолданбада шақырылады. Әзірлеушілер оны қолданба бөлінген жадтан бас тартуы, орындалып жатқанның бәрін сақтауы, қажет емес деректерді жадтан тазартуы және басқаша жадты жеткілікті түрде босатуы үшін оны жүзеге асыруы керек. Рас, көптеген әзірлеушілер, тіпті жаңадан бастағандар да мұндай нәрселер туралы ойламайды немесе түсінбейді, содан кейін олардың қолданбасы батареяның қызмет ету мерзіміне қауіп төндіруі және/немесе тіпті фондық режимде жүйелік ресурстарды қажетсіз тұтынуы мүмкін.
Үкім
Осы алты күй және олармен байланысты әдістер iOS жүйесіндегі барлық «көп тапсырманың» фоны болып табылады. Бұл тамаша жүйе, егер әзірлеушілер қолданбаның пайдаланушылардың құрылғыларында пайда болатынына, егер олар кішірейтілгеніне немесе жүйеден ескертулер алатынына және т.б. жауапкершілікті қажет ететінін елемейді.
Дерек көзі: Macworld.com
Авторлары: Якуб Пожарек, Мартин Дубек (ArnieX)
Сізде де шешетін мәселе бар ма? Сізге кеңес керек пе немесе дұрыс қолданбаны табу керек пе? Бөлімдегі пішін арқылы бізбен байланысудан тартынбаңыз Кеңес беру, келесі жолы сұрағыңызға жауап береміз.
Сәлеметсіз бе, шынымен керемет мақала, бірақ сізде оған техникалық қолдау бар ма деп ойлаймын. Мен кешке ұйықтар алдында батареяны бірнеше рет шешкендіктен, Wi-Fi және ұялы деректер өшірілген кезде, Wi-Fi өшірілген және тек 3G болған басқа жағдайға қарағанда көп уақыт қажет болды.
Өкінішке орай, iOS жүйесінде қолданбаларды қолмен өшіру керек, ал жүйе енді бұрынғыдай жақсы жұмыс істемейді.
Мен iPhone телефонымды Windows Phone телефонымен ауыстырдым (6200,- үшін Samsung Omnia W) және жүйенің жылдамдығы мүлдем басқа деңгейде.
Windows 8 Metro планшеттері шыққанда мен iPad-ты ауыстырамын деп қорқамын...
@007 – иә, егер сіз ескі iPhone3G құрылғыларын жаңа WP құрылғыларымен салыстырсаңыз, иә (оны кім күткен?) WP біршама жылдамырақ болады. Әйтпесе, Карлулка туралы өсек сізге ұнамайды және қазіргі HW салыстыру орынды болды. Мен сондай-ақ WP7 сатып алдым және соңында 4-пен аяқталдым, бұл WP7-ге қарағанда мүлдем басқа қолайлылық деңгейін білдіреді. Сондықтан плиткалар арқылы жағымды және шексіз айналдырыңыз.
Мен Пажамен толықтай келісемін
Мен тағы бір бөшкенің қоқыстарынан үлес қосар едім - Samsung Galaxy S және iPhone 4 - жасы бойынша салыстыруға болады деп айта аламын ба? IOS 4 кезінде және Android-тен басқа жерде ыңғайлылық пен жылдамдық бойынша, Apple қолданбалармен жұмыс істеу тұжырымдамасын өте жақсы шешті, бірақ Android үшін де дәл солай емес. Ақырында, мен бәрібір 4S-пен аяқталдым және менде ешқандай шағымдар жоқ, өйткені «бұл жай ғана жұмыс істейді» .. және ол өте тез жұмыс істейді!
Теория әдемі... Бірақ іс жүзінде барда қосымшаны жабамын ;)
Рахмет, өте қызықты, прагматикалық, қызықты, оның тербелісі мен тереңдігі жоқ. Бүгінгі жастардың осы тыйым салынған брендке деген құмарлығын айтарлықтай атап өту! Бірақ оған да, осы мақалаға да рахмет.
Мақала мүлде қате.
Қате айтылғандай, «Негізгі» түймесі басылғанда қолданба өшпейді, бірақ тоқтайды. яғни. міндетті түрде жадтан жоймаңыз және шықпаңыз. Тек іске қосуды тоқтатыңыз, iOS бұл қолданбаға 0% процессор уақытын береді. Ол мақалада айтылғандай, iDevice жадының ешбір жерінде «алмаспайды». Бұл шын мәнінде қолданбаны ауыстыруды пайдалану мүмкіндігінің арқасында.
Телефонда басымдығы жоғары басқа қолданбаларды іске қосу үшін жады аз болған кезде қолданба жадтан жойылады (әдетте басқа қолданба алдыңғы қатарда жұмыс істейді).
Бірінші жағдайда, сіз дұрыс айтасыз, бұл аударма қатесі болды. Свопингке келетін болсақ, бұл жерде біз бұл туралы емес, iOS құрылғысындағы сақтау орны туралы емес, операциялық жады туралы айтып отырмыз.
қолданбаның кескіні пәрмен арқылы қайта шақырылғанға дейін шектеулі уақыт бойы жадта сақталады (13,7 ГБ ішінен 16 ГБ қараңыз: 2,3 ГБ жүйе және тоқтатылған қолданбалар үшін сақталған)
Осылайша, Навигация, Skype және сол сияқты қолданбаларды ажырату қажет, бұл қолданбалар тіпті фондық режимде белсенді болып қалады немесе белгілі бір функция аяқталмайды және оны жалғастырады, мысалы, оның орны немесе орналасқан жері туралы ақпаратты жіберу. Немесе порд режиміндегі Vokul сияқты тыңдау және көп тапсырмаларды орындау фондық режимде әлі де тыңдалады.
Бұл қолданбалар батареяны зарядтайды және iOS-ты күтпей, оларды қолмен жабу керек. басқалармен бұл қажет емес, тек қолданба бұзылған жағдайда ғана.
Мен мақаламен келісе алмаймын. Мин. 1-ші буын iPad (iOS 5.0.1) құрылғысында көп тапсырма жолағында «ашық» қолданбалар көп пе, әлде бірнешеуі бар ма, анық. iOS жадты тазалауға тырысады, бірақ бұл жеткіліксіз - ЖЖҚ-ның шағын өлшемі оның ең үлкен әлсіздігі болуы мүмкін.
сондықтан көп нәрсе жүйеге және пайдаланылатын аппараттық құралға байланысты, оның iOS 1 нұсқасы бар iPad 5.0.1-де 2-ші буын iPad-қа қарағанда нашар болуы әбден қисынды.
Кешіріңіз, бұл оның жұмыс істеуі керек ИДЕАЛ әдісінің сипаттамасы. Өкінішке орай, шындық мүлдем басқа және сіз Apple өнімдерін кем дегенде мен сияқты пайдалансаңыз (яғни, анда-санда) оны білетін боларсыз.
«ІOS жүйесінде фондық режимде жұмыс істейтін қолданбалар операциялық жадты толтырады деген ырымдарды жиі естисіз»,
Бұл ырым емес, бұл жай ғана факт. Өйткені, сіз оны мақалада өзіңіз бекітесіз.
«Бұрын айтқанымдай, пайдаланушыға фондық режимде жұмыс істейтін қолданбаларды жабудың қажеті жоқ».
НЕНСЕНСІК. Бұл жәй бос сөз, алманың насихаты, маған ашуланба.
«Бірақ мұны істеудің қажеті жоқ, өйткені iOS мұны сіз үшін жасайды. Егер сізде фондық режимде тоқтатылған талап етілетін қолданба болса, мысалы, үлкен оперативті жадты пайдаланатын ойын, қажет болғанда iOS оны автоматты түрде жадтан жояды және қолданба белгішесін түрту арқылы оны қайта іске қосуға болады.
Дұрыс емес. Жағдай сәл басқаша. Әдеттегі мысал – менде фондық режимде жұмыс істейтін талап етілетін қолданбалар бар, маған ойындар қажет. Мен браузерді іске қосамын, бірнеше қойындыларды ашамын -> көбірек жад қажет. Не болады? Мен талап ететін қолданбаларды фондық режимде сақтаймын, керісінше, БРАВСЕРДІҢ ӨЗІ ҚҰЛАДЫ. Егер мен талап етілетін қолданбаларды қолмен жапсам, браузер ұзақ уақыт бойы еш қиындықсыз жұмыс істейді.
Бұл теория емес, практика. Apple өнімінің ұзақ мерзімді пайдаланушысы ретінде сіз мұны әлі де білмейтініңізге таң қалдым.
Рахмет, бұл өте жақсы сипатталған және жақсы түсіндірілді. Сіз маған көп көмектестіңіз ;-) ♥
Кіріспе үшін, мен Android сияқты iOS-ты қолдамаймын да, қарсы да емеспін, бірақ бұл жерде бірнеше оғаш нәрселер бар, егер мұнда жазылғандай: «сіз iOS-те қолданбаның бұзылуына сирек тап боласыз», содан кейін Android-те, Бағдарламалар жылына бір рет бұзылып қалуы мүмкін: -P
http://dotekomanie.blog.mobilmania.cz/2012/02/stabilita-ios-vs-android/
Иә, бірақ қолданбаны қолмен жабу қажет болған жағдайлар өте аз, мен оны бір рет қолданғанмын ба? ;-) және Mobilemania-дан салыстырмалы тестке сілтеме беру мүлдем мағынасыз, мен Google төлеген жарнама туралы оқығым келгенде, мен сол жерден қараймын ;-) әркім өз қолында кез келген Android телефонын ала алады және ол таза жұмыс істемейді, яғни Galaxy Nexus жүйесін қоспағанда, жүйе азды-көпті арнайы жасалған. Жалпы, Android – апат
@Mek – Мен бірнеше жыл бойы Apple өнімдерін күнделікті пайдаланып келемін және бұл менімен ешқашан болған емес, сондықтан сіздің теорияңыз қандай да бір түрде жұмыс істемейді.
OT:
@redakce – Веб-сайттың үнемі жұмыс істеп жатқанын немесе онымен бірдеңе болып жатқанын көруге болады, бірақ бәрі дұрыс жұмыс істеуі үшін бір апта қажет емес сияқты. Ал мен енді мұнда келмеймін, өйткені жаңа келбет маған жараспайды. Кем дегенде мен iPhone-да мобильді нұсқаны қолдандым, бірақ қазір ол мүлдем жұмыс істемейді - қалай болды? Олар қазір түсініктемелердегі жазбаларға жауап бермейді.
@SteveJSF Өкінішке орай, бәрі әрқашан біз қалағандай бола бермейді. Жауаптарға келетін болсақ, жаңа SEO плагині оларды бұзды, ол қазір шешілуде.
WP-Touch да қандай да бір себептермен біздің қызметімізді тоқтатты, сондықтан біз осы плагинге қарағанда жақсырақ шешім табуды шештік. Сондықтан жақын арада келесі жаңалықтарды күтуге болады :-)
Жақсы мақала. Тәжірибеге келетін болсақ, мен бірнеше нәрсемен келісетінімді айтқым келеді және көбінесе ол айтылғандай жұмыс істейді, бірақ өкінішке орай, әлі де дұрыс жұмыс істемейтін нашар жазылған өтініштер бар, содан кейін осындай жағдайлар бар. кейбір оқырмандар атап өтті. Менің ойымша, Skype өте жақсы үлгі болып табылады, мен оның әлі де фондық режимде жұмыс істейтінін тәжірибеден білемін (және бұл жақсы және солай болуы керек), бірақ мәселе мынада, бұл қолданба құрылғының батареясын көп жұмсайды және Мен оны енді дұрыс көре алмаймын. Керісінше, Facebook, Badoo сияқты қолданбалар және т.б. олар әлі де фондық режимде жұмыс істейді, бірақ олардың тұтынуы дерлік байқалмайды (кем дегенде мен байқамаймын). Сондықтан қате жеке қолданбаларда деп ойлаймын. Қайсысын білсеңіз, соларды ғана қолмен өшіру жеткілікті болар еді!
Сондықтан Facebook қажет болған жағдайда және Skype қажет болғанда ғана жұмыс істейді.
Екінші жағынан, егер мен батареяны үнемдеуім керек болса және мен iPhone-ды мүмкіндігінше «тірі» ұстауым керек екенін білсем, мен көп тапсырмада қажет емес барлық нәрсені өшіремін, бірақ көбінесе бұл үлкен әсер етпейді, бірақ қажет болса, 3G, барлық мобильді интернет, WiFi, орынды анықтау қызметтері, ұшақ режимі, жарықтандыру күші және т.б. шектеймін. Тәртіптің бір бөлігі ретінде мен көп тапсырмада жоғарыда аталған қолданбаларды да өшіремін.
Сондықтан жеке менің ойымша, мақала дұрыс деп ойлаймын, өкінішке орай, кейбір бағдарламашылар бұл нәрселерді өз қосымшаларымен жоққа шығарады, өйткені олардың қолданбалары дұрыс емес және менің ойымша, бұл үшін екі ғана шешім бар 1. Егер қолданбаны пайдаланбау және оны табу мүмкін болса. мүмкін болса балама немесе 2. Егер мүмкін болмаса, мысалы, Skype қараңыз, оны есепте берілген бағдарламашыға жазыңыз және олар бұл туралы бірдеңе жасайды деп үміттеніңіз.
Қолданбаларды қолмен өшіру мағынасыз болуы мүмкін, бірақ мен мұны бәрібір істеймін. Мен сондай-ақ қолданбалы жүйені өшірмеуге тырыстым, оларды іске қосуға мүмкіндік бердім (немесе фондық режимде ұйықтап қалдырдым) және батареяның қызмет ету мерзімі әлдеқайда аз болды, сонымен қатар шамамен үш аптадан кейін iPad 2-ні қайта іске қосу қажет болды, ол баяу жауап берді. Сондықтан мен қолданбаларды қолмен өшіремін, батарея ұзаққа созылады, мен жақында Рождество күні қайта жүктедім және ол жақсы жұмыс істейді.
Айтпақшы, мен Mac OS X жүйесінде де солай істеймін, мен қажет емес қолданбаны жабамын (CMD+Q), бұл фондық режимде ұйықтап, жедел жадты қажетсіз жегеннен гөрі жақсы (осы OS X мүмкін емес) t өте жақсы жұмыс істейді). Менің жедел жадым аз, бар болғаны 8 ГБ, бірақ Windows 7-де 8 ГБ жүйе баяу жауап бермеді немесе ауыстырмады, OS X-де бұл өте жиі кездесетін құбылыс (мен компьютерді ешқашан өшірген емеспін, мен оны Mac-пен де жасаймын, сондықтан бір ай және одан да көп уақыт ерекшелік емес, мәселе мынада, мен кейде ЖЖҚ босату және «жылдамдату» үшін сақтық шарасы ретінде Mac компьютерін қайта іске қосуым керек, Windows 7-ге бұл қажет емес).
Маған қосымшаны шын мәнінде қалай жағу керектігі қызықтырады. Маған не болды, қолданба (әсіресе Geocaching бойынша) негізгі серверден бірдеңе жүктеп жатқан күйге түсіп, сол күйде тұрып қалды. Басты түймесі жұмыс істеді, қайта жүктегеннен кейін ол мұздатылған күйге оралды (мен тоқтаған жерде). Қолмен шығу (көп дәм мәзіріне, жабу үшін белгішені ұстап тұрыңыз және минус) = қолданба жоғалып кетті, қайта іске қосқаннан кейін ол қатып қалған бастапқы күйінде ашылды. Сондықтан мен бәрін жауып, телефонды өшірдім, оны қостым, HOME түймесін екі рет нұқтым және мынаны көрдім - қолданбалардың барлығы өшіру алдында жабылғанға дейін болғандай болды. Қайта іске қосу да көмектеспеді - ыстық болғанша үйді және жоғарғы жағын ұстаңыз. Қолданбаны телефоннан алып тастау, оны қайта іске қосу және телефонға қайта орнату көмектесті. Әйтеуір қабылдамады.
Бұл көп тапсырманы басқару жұмыс істейді және бұл жағдайлармен күресу әзірлеушілерге байланысты. Бүкіл жағдайдың егжей-тегжейлі және кәсіби сипаттамасына қызығушылық танытқандар үшін мен оның қалай екенін осында жазамын.
Қолданба барлығы 6 күйге жауап бере алады және бұл күйлер:
applicationWillResignActive
applicationDidEnterBackground
applicationWillEnterForeground
applicationDidBecomeActive
қолдану тоқтатылады
applicationDidReceiveMemoryWarning
Енді мен бұл күйлерді толығырақ сипаттауға тырысамын.
applicationWillResignActive – бұл күй болашақта (бірнеше миллисекундтарда) қолданба белсенді қолданба ретінде (яғни, алдыңғы қатардағы қолданба) жұмыстан шығатынын білдіреді, бұл, мысалы, қолданбаны пайдалану кезінде қоңырауды қабылдау кезінде орын алады, бірақ сонымен бірге бұл әдіс сондықтан бұл күй қолданба фондық режимге өткенге дейін іске қосылады, сондықтан бұл өзгерістерді ескеру қажет. Бұл әдіс, мысалы, кіріс қоңырау болған кезде орындайтын барлық әрекеттерді тоқтата тұру және қоңыраудың соңына дейін күту үшін де қолайлы.
applicationDidEnterBackground – бұл күй қолданбаның фонға енгенін көрсетеді, әзірлеушілер бұл әдісті фондық режимде міндетті түрде іске қосуды қажет етпейтін барлық процестерді тоқтата тұру және пайдаланылмаған деректер мен басқа процестердің жадын тазалау үшін қолдануы керек, мысалы, мерзімі бітетін таймерлерді өшіру. жадқа жүктелген кескіндер, олар міндетті түрде қажет емес немесе қолданба үшін қосылымды фондық режимде аяқтау маңызды болмаса, серверлермен байланысты тоқтатады. Негізінде, бұл әдіс қолданбада шақырылған кезде, егер оның кейбір бөлігі фондық режимде жұмыс істеу қажет болмаса, қолданбаны толығымен тоқтату үшін қолданылуы керек.
applicationWillEnterForeground – бұл күй қолданба белсенді күйге шығатын кездегі бірінші күйге қарама-қарсы. Бұл қолданба күйі жай ғана келесі бірнеше миллисекундтарда ұйықтап жатқан қолданбаның фондық режимнен қайта басталатынын және алдыңғы планға шығатынын білдіреді (қолданба алдыңғы планға шығады), бұл әдісті әзірлеушілер қолданба жұмыс істеп тұрған кезде белсенді емес кез келген процестерді жалғастыру үшін пайдалануы керек. фондық режимде серверлерге қосылымдар қалпына келтірілуі керек, таймерлер қалпына келтірілуі керек, кескіндер мен деректер жадқа жүктелуі керек және басқа қажетті процестер пайдаланушы жүктелген қолданбаны қайта көрмес бұрын ғана жалғаса алады.
applicationDidBecomeActive – бұл күй қолданбаның алдыңғы қатарға қалпына келтірілгеннен кейін ғана белсенді болғанын көрсетеді, бұл пайдаланушы интерфейсіне қосымша түзетулер енгізу немесе UI бастапқы күйіне қалпына келтіру және т.б. үшін пайдаланылуы мүмкін әдіс. Бұл әдіс іс жүзінде орын алады. пайдаланушы дисплейде бұрыннан көре алатын болса, баланстан осы әдісте және алдыңғы әдісте не болып жатқанын анықтау керек. Олар бірнеше миллисекундтық айырмашылықпен бірінен соң бірі шақырылады.
applicationWillTerminate - бұл күй қолданба аяқталғанға дейін бірнеше миллисекунд бұрын, яғни қолданба іс жүзінде аяқталмай тұрып орын алады. Көп тапсырмадан қолмен немесе құрылғыны өшірген кезде. Бұл әдіс өңделген деректерді сақтау және барлық әрекеттерді аяқтау және енді қажет болмайтын деректерді жою үшін қолданылуы керек.
applicationDidReceiveMemoryWarning - бұл жерде көп талқыланатын шарт, қажет болған жағдайда iOS жүйелік ресурстарды қажетсіз пайдаланса, қолданбаны жадтан жояды. Мен iOS-тың фондық қолданбалармен не істейтінін нақты білмеймін, бірақ егер оған басқа процестерге ресурстарды шығару үшін қолданба қажет болса, ол оны ұстап тұрған ресурстарды босату туралы жад ескертуімен шақырады. Сонымен, бұл әдіс қолданбада шақырылады және әзірлеушілер оны қолданбада бар жадтан бас тартуы, өңделгенді сақтау және жадтан қажет емес деректерді жою, әйтпесе жадты адекватты түрде босату үшін жүзеге асыруы керек. Рас, көптеген әзірлеушілер, мысалы, жаңадан бастағандар, мұндай нәрселер туралы ойламайды немесе оларды түсінбейді, содан кейін олардың қолданбасы батареяның қызмет ету мерзіміне қауіп төндіруі және/немесе тіпті фондық режимде жүйелік ресурстарды қажетсіз тұтынуы мүмкін. Қолданба жад ескертуін алғаннан кейін ештеңе жасамаса және бұрынғыдай жүйелік ресурстарды тұтынуды жалғастырса, iOS қалай әрекет ететінін білмеймін.
Осы бірнеше күйлер мен олармен байланысты әдістер iOS жүйесіндегі бүкіл «көп тапсырманың» артында тұр... егер әзірлеушілер қолданбалар азайтылған болса, пайдаланушылардың құрылғыларында не пайда болатынына жауапты болу қажеттілігін елемейтін болса, бұл тамаша жүйе. немесе жүйеден ескертулер алу және т.б.
Бұл қысқаша сипаттама сізге бағдарламаның барлығы біркелкі жұмыс істеуге қалай қатысатынын түсінуге көмектеседі деп үміттенемін. Сонымен, бұл пайдаланушының қате пайдалануының қатесі деп айтуға болады, мұны түсінуге болады - егер сіз негізінен әуесқой әзірлеушілердің тегін қосымшаларын көп мөлшерде пайдалансаңыз, сіздің iOS құрылғыңыз үлкен көлемде пайдаланғаныңызға қарағанда нашар жұмыс істейді. тәжірибелі немесе кәсіби әзірлеушілердің ақысыз және ақылы қосымшаларының саны. Бұл екі шеңберде де ерекшелік жоқ дегенді білдірмейді. Мысалы, foursquare өзін өте біртүрлі және талапшыл ұстайды, сонымен бірге олар жад пен батареяны басқаруға көп уақыт беретін өте білікті әзірлеушілер деп күтуге болады, бірақ керісінше. 4SQ-дағы ең үлкен мәселе - серверлермен байланыс, ол жиі ілініп қалады және толып кетеді. Бұл 4SQ тамаша қызмет екенін өзгертпейтін тіпті белгілі қосымшалардың да проблемалары бар екендігінің мысалы ғана.
Көңілді болыңыз алма!! :)
Біз ақпаратты мақалаға автордың рұқсатымен қостық ;-)
Кешіріңіз, ENTER абзацтар арасында кез келген жерде болды, олар бұл жерде бұл туралы бірдеңе жасай алады, сондықтан түсініктемелерде кем дегенде RICH МӘТІН ПІШІМДЕРІ болады.
ArnieX: Пікіріңізге рахмет!!
Сол Фарамир: Мен тек сіздің мәселеңіз туралы, бұл сіздің жағдайыңызға көмектесетінін білмеймін, бірақ мен өз тәжірибемнен білемін, егер сіз қолданбаны жапсаңыз (көп тапсырмада) ол жабылғанша бірнеше секунд кетеді, сондықтан егер сіз оны өшіріңіз Мен бірнеше секунд күтуді ұсынамын (сенімді болу үшін шамамен 10 секунд күтемін) ол сөзсіз аяқталғанша, содан кейін ғана қайта бастаймын.
Қош келдіңіз ;) Егер менің үлес қосу мүмкіндігім болса, көмектесуге қуаныштымын.
Meeb-пен қалай болу керек, мен ол арқылы ICQ немесе FB чатына кірсем, ол 10 минуттан кейін автоматты түрде шығып, мен желіден тыс күйге шығамын немесе ол жұмысын жалғастыра ма? түсініктеме үшін рахмет: P
Он минуттан кейін қолданбаның Интернетке қосылуы жай ғана үзіледі. Дегенмен, сіз Meeba серверінде әлі де желіде боласыз және біреу сізге хат жазса, push хабарландыруын аласыз. Қолданбаны қайта ашқаннан кейін қосылым бір сәтте орнатылады және сіз бақытты түрде сөйлесуді жалғастыра аласыз.
Сонымен, егер мен сіз байланыстырған мақаланы дұрыс түсінсем, статистика қолданбалар іске қосылған кезде ғана бұзылады, бұл апат орын алуы мүмкін жағдайлардың өте аз пайызы. Сондықтан, бұл «зерттеуден» менің ойымша, iOS-тың тұрақтылығы төмен деген қорытынды жасау мүмкін емес. Сонымен қатар, Forbes-тен алынған мақаланың аудармашысы қолданбалардың бұзылуы туралы деректерді ұсынатын компанияны басқалармен қатар Google қолдайтынын айтуды ұмытып кетті («Crittercism, ол Google Ventures қолдауымен,...»).