Դեռ շատ մարդիկ կան, ովքեր չգիտեն, թե ինչպես է աշխատում բազմաֆունկցիոնալ աշխատանքը iOS-ում: Սկսելու համար, սակայն, հարկ է նշել, որ սա իրական բազմաֆունկցիոնալություն չէ, այլ շատ խելացի լուծում, որը չի ծանրաբեռնում համակարգը կամ օգտագործողին:
Հաճախ կարելի է լսել սնահավատություն, որ iOS-ի հետին պլանում աշխատող հավելվածները լցնում են օպերացիոն հիշողությունը, ինչը հանգեցնում է համակարգի դանդաղեցման և մարտկոցի աշխատանքին, ուստի օգտատերը պետք է դրանք անջատի ձեռքով: Բազմակի առաջադրանքների սանդղակը իրականում չի պարունակում բոլոր գործող ֆոնային գործընթացների ցանկը, այլ միայն վերջին գործարկված հավելվածները: Այսպիսով, օգտվողը չպետք է անհանգստանա հետին պլանում աշխատող գործընթացներից, բացառությամբ մի քանի դեպքերի: Երբ սեղմում եք Home կոճակը, հավելվածը սովորաբար անցնում է քնելու կամ փակվում, այնպես որ այն այլևս չի բեռնում պրոցեսորը կամ մարտկոցը և անհրաժեշտության դեպքում ազատում է անհրաժեշտ հիշողությունը:
Այսպիսով, սա լիարժեք բազմաբնույթ առաջադրանք չէ, երբ դուք ունեք տասնյակ պրոցեսներ, որոնք աշխատում են առաջին պլանում, որն անհրաժեշտության դեպքում դադարեցվում է կամ ամբողջությամբ անջատվում: Միայն մի քանի երկրորդական գործընթացներ են աշխատում հետին պլանում: Ահա թե ինչու iOS-ում հազվադեպ կհանդիպեք հավելվածի խափանման, օրինակ՝ Android-ը ծանրաբեռնված է գործարկվող հավելվածներով, որոնց մասին պետք է հոգ տանի օգտատերը: Սա մի կողմից տհաճ է դարձնում սարքի հետ աշխատելը, իսկ մյուս կողմից՝ առաջացնում է, օրինակ, դանդաղ գործարկում և անցումներ հավելվածների միջև։
Հավելվածի գործարկման ժամանակի տեսակը
Ձեր iOS սարքի հավելվածը գտնվում է այս 5 վիճակներից մեկում.
- Վազում: հավելվածը սկսվում է և աշխատում է առաջին պլանում
- Նախապատմություն: այն դեռ աշխատում է, բայց աշխատում է հետին պլանում (մենք կարող ենք օգտագործել այլ հավելվածներ)
- Կասեցված է՝ Դեռ օգտագործում է RAM, բայց չի աշխատում
- Ոչ ակտիվ: հավելվածը աշխատում է, բայց անուղղակի հրամաններ (օրինակ, երբ դուք կողպում եք սարքը, երբ հավելվածն աշխատում է)
- Չի աշխատում. Դիմումը դադարեցվել է կամ չի սկսվել
Խառնաշփոթն առաջանում է, երբ հավելվածը մտնում է ֆոն, որպեսզի չխանգարի: Երբ սեղմում եք Home կոճակը կամ օգտագործում եք ժեստը՝ հավելվածը փակելու համար (iPad), հավելվածը անցնում է հետին պլան: Հավելվածների մեծ մասը կասեցվում է վայրկյանների ընթացքում (դրանք պահվում են iDevice-ի RAM-ում, որպեսզի արագ գործարկվեն, չեն բեռնում պրոցեսորը և այդպիսով խնայում են մարտկոցի կյանքը): Կարող եք մտածել, որ եթե հավելվածը շարունակի օգտագործել հիշողությունը, դուք ունեք ձեռքով ջնջել այն ազատելու համար: Բայց դուք չպետք է դա անեք, քանի որ iOS-ը դա կանի ձեր փոխարեն: Եթե դուք ունեք պահանջկոտ հավելված, որը կասեցված է հետին պլանում, օրինակ՝ խաղ, որն օգտագործում է մեծ քանակությամբ RAM, iOS-ն ավտոմատ կերպով կհեռացնի այն հիշողությունից, երբ անհրաժեշտ լինի, և դուք կարող եք այն վերագործարկել՝ հպելով հավելվածի պատկերակին:
Այս վիճակներից և ոչ մեկը չի արտացոլվում բազմաբնույթ առաջադրանքների տողում, վահանակը ցույց է տալիս միայն վերջերս գործարկված հավելվածների ցանկը՝ անկախ նրանից՝ հավելվածը դադարեցված է, դադարեցված է կամ աշխատում է հետին պլանում: Կարող եք նաև նկատել, որ ներկայումս գործող հավելվածը չի հայտնվում Multitasking վահանակում
Ֆոնային առաջադրանքներ
Սովորաբար, երբ սեղմում եք Home կոճակը, հավելվածը կաշխատի հետին պլանում, և եթե այն չեք օգտագործում, այն ավտոմատ կերպով կդադարեցվի հինգ վայրկյանի ընթացքում: Այսպիսով, եթե դուք, օրինակ, փոդքաստ եք ներբեռնում, համակարգը այն գնահատում է որպես գործող հավելված և հետաձգում է դադարեցումը տասը րոպեով: Ամենաուշը տասը րոպե հետո գործընթացը ազատվում է հիշողությունից: Մի խոսքով, դուք չպետք է անհանգստանաք ձեր ներբեռնումն ընդհատելու մասին՝ սեղմելով Home կոճակը, եթե այն ավարտելու համար 10 րոպեից ավելի չի պահանջվում:
Հետին պլանում անորոշ վազք
Անգործության դեպքում համակարգը դադարեցնում է հավելվածը հինգ վայրկյանի ընթացքում, իսկ ներբեռնումների դեպքում դադարեցումը հետաձգվում է տասը րոպեով։ Այնուամենայնիվ, կան փոքր թվով հավելվածներ, որոնք պահանջում են աշխատել հետին պլանում: Ահա հավելվածների մի քանի օրինակներ, որոնք կարող են անորոշ ժամանակով աշխատել ֆոնին iOS 5-ում.
- Հավելվածներ, որոնք ձայն են նվագում և պետք է որոշ ժամանակով ընդհատվեն (երաժշտության դադարեցում հեռախոսազանգի ժամանակ և այլն),
- Ձեր գտնվելու վայրը հետևող հավելվածներ (նավիգացիոն ծրագրակազմ),
- VoIP զանգեր ստացող հավելվածները, օրինակ, եթե օգտվում եք Skype-ից, կարող եք զանգ ստանալ նույնիսկ այն դեպքում, երբ հավելվածը հետին պլանում է,
- Ավտոմատ ներբեռնումներ (օրինակ՝ Մամուլի կրպակ):
Բոլոր հավելվածները պետք է փակվեն, եթե այլևս առաջադրանք չեն կատարում (օրինակ՝ ֆոնային ներբեռնումներ): Այնուամենայնիվ, կան բացառություններ, որոնք անընդհատ աշխատում են հետին պլանում, օրինակ՝ հայրենի Mail հավելվածը: Եթե դրանք աշխատում են հետին պլանում, դրանք խլում են հիշողությունը, պրոցեսորի օգտագործումը կամ նվազեցնում մարտկոցի կյանքը
Հավելվածները, որոնց թույլատրվում է անժամկետ աշխատել ֆոնային ռեժիմում, կարող են անել այն ամենը, ինչ անում են գործարկման ընթացքում՝ սկսած երաժշտություն նվագարկելուց մինչև Podcast-ի նոր դրվագներ ներբեռնելը:
Ինչպես նախկինում նշեցի, օգտատերը երբեք կարիք չունի փակելու հետին պլանում աշխատող հավելվածները: Սրա միակ բացառությունն այն է, երբ հետին պլանում աշխատող հավելվածը խափանում է կամ ճիշտ չի արթնանում քնից: Այնուհետև օգտագործողը կարող է ձեռքով փակել հավելվածները բազմաբնույթ առաջադրանքների տողում, բայց դա հազվադեպ է պատահում:
Այսպիսով, ընդհանուր առմամբ, ձեզ հարկավոր չէ կառավարել ֆոնային գործընթացները, քանի որ համակարգը ինքն է հոգ տանելու դրանց մասին: Ահա թե ինչու iOS-ը այդքան թարմ և արագ համակարգ է:
Մշակողի տեսանկյունից
Հավելվածը կարող է արձագանքել ընդհանուր առմամբ վեց տարբեր վիճակներով՝ որպես բազմաբնույթ առաջադրանքների մաս.
1. applicationWillResignActive
Թարգմանության մեջ այս վիճակը նշանակում է, որ հայտը կհրաժարվի որպես ակտիվ հավելված (այսինքն՝ դիմումը առաջին պլանում) ապագայում (մի քանի միլիվայրկյան): Դա տեղի է ունենում, օրինակ, հավելվածից օգտվելիս զանգ ստանալիս, բայց միևնույն ժամանակ, այս մեթոդը նաև առաջացնում է այս վիճակը մինչև հավելվածը հետին պլան անցնելը, այնպես որ դուք պետք է հաշվի առնեք այս փոփոխությունները: Այս մեթոդը հարմար է նաև այնպես, որ, օրինակ, այն դադարեցնի իր կատարած բոլոր գործողությունները, երբ կա մուտքային զանգ և սպասի մինչև զանգի ավարտը:
2. applicationDidEnterBackground
Կարգավիճակը ցույց է տալիս, որ հավելվածը մտել է հետին պլան: Մշակողները պետք է օգտագործեն այս մեթոդը՝ կասեցնելու բոլոր գործընթացները, որոնք պարտադիր չէ, որ գործարկվեն հետին պլանում և մաքրեն հիշողությունը չօգտագործված տվյալներից և այլ գործընթացներից, ինչպիսիք են ժամկետանց ժամաչափերը, բեռնված պատկերները մաքրելու հիշողությունից, որոնք պարտադիր չեն, կամ փակելու համար։ կապեր սերվերների հետ, բացառությամբ այն դեպքերի, երբ հավելվածի համար կարևոր չէ հետին պլանում միացումներ կատարելը: Երբ մեթոդը կանչվում է հավելվածում, այն հիմնականում պետք է օգտագործվի՝ հավելվածն ամբողջությամբ կասեցնելու համար, եթե դրա որոշ մասը չի պահանջվում գործարկել ֆոնային ռեժիմում:
3. applicationWillEnterForeground
Այս նահանգը հակառակն է առաջին պետության, որտեղ դիմումը դուրս կգա ակտիվ վիճակից։ Վիճակը պարզապես նշանակում է, որ քնելու հավելվածը կվերսկսվի ֆոնից և կհայտնվի առաջին պլանում մոտակա միլիվայրկյանների ընթացքում: ծրագրավորողները պետք է օգտագործեն այս մեթոդը՝ վերսկսելու բոլոր գործընթացները, որոնք անգործուն են եղել, երբ հավելվածը հետին պլանում էր: Սերվերների հետ կապերը պետք է վերականգնվեն, ժամանակաչափերը զրոյացվեն, պատկերները և տվյալները բեռնվեն հիշողության մեջ, և այլ անհրաժեշտ գործընթացները կարող են վերսկսվել հենց օգտատերը բեռնված հավելվածը նորից տեսնելուց անմիջապես առաջ:
4. applicationDidBecomeActive
Պետությունը ցույց է տալիս, որ հավելվածը նոր է ակտիվացել առաջին պլանում վերականգնվելուց հետո: Սա մեթոդ է, որը կարող է օգտագործվել օգտատիրոջ միջերեսում լրացուցիչ ճշգրտումներ անելու կամ UI-ն իր սկզբնական վիճակին վերականգնելու համար և այլն: Սա իրականում տեղի է ունենում այն պահին, երբ օգտվողն արդեն տեսնում է հավելվածը էկրանին, ուստի անհրաժեշտ է. զգուշությամբ որոշեք, թե ինչ է տեղի ունենում այս և նախորդ մեթոդի մեթոդով: Դրանք կոչվում են մեկը մյուսի հետևից մի քանի միլիվայրկյան տարբերությամբ։
5. հավելվածը կդադարեցվի
Այս վիճակը տեղի է ունենում հավելվածի դուրս գալուց մի քանի միլիվայրկյան առաջ, այսինքն՝ մինչև հավելվածն իրականում դադարեցվի: Կամ ձեռքով մի քանի առաջադրանք կատարելուց կամ սարքն անջատելիս: Մեթոդը պետք է օգտագործվի մշակված տվյալները պահպանելու, բոլոր գործողություններն ավարտելու և այն տվյալները ջնջելու համար, որոնք այլևս կարիք չեն ունենա:
6. applicationDidReceiveMemoryWarning
Դա ամենաքննարկվող վերջին պետությունն է։ Այն պատասխանատու է, անհրաժեշտության դեպքում, հավելվածը iOS-ի հիշողությունից հեռացնելու համար, եթե այն անհարկի օգտագործում է համակարգի ռեսուրսները: Ես չգիտեմ, թե կոնկրետ ինչ է անում iOS-ը ֆոնային հավելվածների հետ, բայց եթե նրան անհրաժեշտ է հավելված՝ ռեսուրսներ այլ գործընթացների համար ազատելու համար, այն հուշում է նրան հիշողության նախազգուշացումով՝ թողարկելու իր ունեցած ռեսուրսները: Այսպիսով, այս մեթոդը կոչվում է հավելվածում: Մշակողները պետք է այն իրականացնեն այնպես, որ հավելվածը հրաժարվի իր հատկացված հիշողությունից, պահպանի այն ամենը, ինչ ընթացքի մեջ է, մաքրի ավելորդ տվյալները հիշողությունից և հակառակ դեպքում համարժեք ազատի հիշողությունը: Ճիշտ է, շատ ծրագրավորողներ, նույնիսկ սկսնակները, չեն մտածում կամ չեն հասկանում նման բաները, և հետո կարող է պատահել, որ նրանց հավելվածը սպառնում է մարտկոցի կյանքին և/կամ անհարկի սպառում համակարգի ռեսուրսները, նույնիսկ հետին պլանում:
Դատավճիռ
Այս վեց վիճակները և դրանց առնչվող մեթոդները iOS-ի բոլոր «բազմ առաջադրանքների» ֆոնն են: դա հիանալի համակարգ է, քանի դեռ ծրագրավորողները չեն անտեսում այն փաստը, որ անհրաժեշտ է պատասխանատու լինել այն մասին, թե ինչ է հավելվածը նետում իրենց օգտատերերի սարքերին, եթե դրանք նվազագույնի են հասցվել կամ համակարգից նախազգուշացումներ ստանալ և այլն:
Աղբյուրը ` Macworld.com
Հեղինակներ: Յակուբ Պոզարեկ, Մարտին Դուբեկ (ArnieX)
Դուք էլ ունե՞ք լուծելու խնդիր։ Խորհրդատվության կարիք ունե՞ք կամ գուցե գտնեք ճիշտ հավելվածը: Մի հապաղեք կապվել մեզ հետ բաժնում նշված ձևի միջոցով Խորհրդատվություն, հաջորդ անգամ կպատասխանենք ձեր հարցին։
Ողջույն, իսկապես հիանալի հոդված, բայց ես զարմանում եմ, թե արդյոք դրա համար տեխնիկական աջակցություն ունեք: Որովհետև երեկոյան մի քանի անգամ քնելուց առաջ մարտկոցը լուծել եմ ու պատահել է, որ wifi-ն ու մոբայլ տվյաները անջատած, ավելի շատ է պահանջվել, քան մյուս դեպքում անջատված wifi-ով ու միայն 3G-ով։
Ցավոք, փորձն այն է, որ iOS-ում հավելվածները պետք է ձեռքով անջատվեն, և համակարգն այլևս չի աշխատում, ինչպես նախկինում:
Ես իմ iPhone-ը փոխարինեցի Windows Phone-ով (Samsung Omnia W 6200,-) և համակարգի արագությունը լրիվ այլ մակարդակի վրա է։
Վախենում եմ, որ երբ դուրս գան Windows 8 Metro պլանշետները, ես էլ կփոխարինեմ iPad-ը...
@007 – այո, եթե դուք համեմատում եք հին iPhone3G-ները նոր WP-ների հետ, ապա այո (ո՞վ կսպասեր դա): WP-ն մի փոքր ավելի արագ կլինի: Հակառակ դեպքում Կարլուլկայի մասին բամբասանքը քեզ մոտ չի ստացվում ու տեղին էր համեմատել ներկայիս HW-ին։ Ես նաև գնեցի WP7 և վերջապես ստացա 4s, որը ներկայացնում է օգտագործելիության բոլորովին այլ մակարդակ, քան WP7-ը: Այսպիսով անցեք հաճելի և անվերջ ոլորեք սալիկներով:
Ես լիովին համաձայն եմ Պաժայի հետ
Ես նորից կնպաստեի մեկ այլ տակառի բեկորներից՝ Samsung Galaxy S-ի և iPhone 4-ի, ես կասեի համեմատելի տարիքի առումով: iOS 4-ի ժամանակ, իսկ օգտագործելիության ու արագության առումով, բացի Android-ից, Apple-ը շատ լավ լուծել է հավելվածների հետ աշխատելու հայեցակարգը, բայց նույնը այլեւս չի կարող լինել Android-ի դեպքում։ Ի վերջո, ես ամեն դեպքում վերջացրի 4S-ով և բողոք չունեմ, քանի որ «ուղղակի աշխատում է» .. և այն շատ արագ է աշխատում:
Տեսությունը գեղեցիկ է... Բայց գործնականում ես դեռ բարում փակում եմ հավելվածը ;)
Շնորհակալություն, շատ հետաքրքիր, պրագմատիկ, հետաքրքիր, ճոճանակի ու խորության պակաս չունի։ Զգալիորեն ընդգծելով այսօրվա երիտասարդության մոլուցքը այս արգելված ապրանքանիշով: Բայց շնորհակալություն նրան, ինչպես նաև այս հոդվածի համար:
Հոդվածը լրիվ սխալ է։
Հավելվածը չի լքում, երբ սեղմվում է Home կոճակը, ինչպես սխալմամբ ասվել է, այլ ընդմիջում է: այսինքն. հաստատ հիշողությունից մի ջնջիր ու մի լքիր: Պարզապես դադարեցրեք գործարկումը, iOS-ը այս հավելվածին կտրամադրի 0% պրոցեսորի ժամանակ: Այն հաստատ չի «փոխանակում» iDevice-ի հիշողության մեջ ոչ մի տեղ, ինչպես նշված է հոդվածում։ Դա իսկապես շնորհիվ այն բանի, որ հնարավոր է օգտագործել հավելվածների փոխարկումը:
Հավելվածը հեռացվում է հիշողությունից, երբ հեռախոսը քիչ հիշողություն ունի՝ ավելի բարձր առաջնահերթություն ունեցող այլ հավելվածներ գործարկելու համար (սովորաբար մեկ այլ հավելված աշխատում է առաջին պլանում):
Առաջին դեպքում ճիշտ եք, թարգմանական սխալ էր։ Ինչ վերաբերում է փոխանակմանը, այստեղ խոսքը դրա մասին չէ, մենք խոսում ենք օպերացիոն հիշողության մասին, այլ ոչ թե iOS սարքի պահեստային տարածքի մասին:
հավելվածի պատկերը պահվում է հիշողության մեջ սահմանափակ ժամանակով, մինչև այն նորից կանչվի հրամանի միջոցով (տես 13,7 ԳԲ 16 ԳԲ-ից. 2,3 ԳԲ-ը վերապահված է համակարգի և կասեցված հավելվածների համար)
Այսպիսով, անհրաժեշտ է տարբերակել այնպիսի հավելվածներ, ինչպիսիք են Navigation-ը, Skype-ը և նմանատիպ հավելվածները, այդ հավելվածները մնում են ակտիվ նույնիսկ հետին պլանում, կամ որոշակի գործառույթ չի ավարտվում և շարունակվում է, օրինակ, ուղարկել տվյալներ իր գտնվելու վայրի կամ գտնվելու վայրի մասին: Կամ, ինչպես Vokul-ը pord ռեժիմում, լսեք, իսկ բազմաբնույթ առաջադրանքները դեռ լսում են հետին պլանում:
Այս հավելվածները սպառում են մարտկոցը, և անհրաժեշտ է դրանք ձեռքով փակել և չսպասել iOS-ին։ ուրիշների հետ դա անհրաժեշտ չէ, այնտեղ միայն այն դեպքում, երբ հավելվածը խափանվի:
Ես չեմ կարող համաձայնվել հոդվածի հետ։ Min. 1-ին սերնդի iPad-ի վրա (iOS 5.0.1) պարզ է, որ ես ունե՞մ շատ «բաց» հավելվածներ բազմաբնույթ առաջադրանքների բարում, թե՞ ընդամենը մի քանիսը: iOS-ն իսկապես փորձում է մաքրել հիշողությունը, բայց դա ակնհայտորեն բավարար չէ. RAM-ի փոքր չափը, հավանաբար, նրա ամենամեծ թույլ կողմն է:
Այսպիսով, շատ բան կախված է համակարգից և օգտագործվող սարքաշարից, միանգամայն տրամաբանական է, որ iOS 1-ով iPad 5.0.1-ում ավելի վատ կլինի, քան եթե այն լիներ 2-րդ սերնդի iPad-ի վրա:
Կներեք, ընկեր, սա նկարագրություն է ԻԴԵԱԼԱԿԱՆ եղանակի, որը պետք է աշխատի: Ցավոք սրտի, իրականությունը բոլորովին այլ է, և դուք դա կիմանայիք, եթե օգտագործեիք Apple-ի արտադրանքները, գոնե այնքան, որքան ես (այսինքն երբեմն):
«Հաճախ կարող եք լսել սնահավատություն, որ iOS-ի հետին պլանում աշխատող հավելվածները լրացնում են օպերացիոն հիշողությունը»:
Դա սնահավատություն չէ, դա ուղղակի փաստ է: Ի վերջո, հոդվածում դուք ինքներդ եք պնդում:
«Ինչպես նախկինում նշեցի, օգտատերը երբեք կարիք չունի փակելու հետին պլանում աշխատող հավելվածները»:
Անհեթեթություն. Դա ուղղակի հիմարություն է, խնձորի քարոզչություն, մի բարկացեք ինձ վրա:
«Բայց դուք պետք չէ դա անել, քանի որ iOS-ը դա կանի ձեր փոխարեն: Եթե դուք ունեք պահանջկոտ հավելված, որը կասեցված է հետին պլանում, օրինակ՝ խաղ, որն օգտագործում է մեծ քանակությամբ RAM, iOS-ն ավտոմատ կերպով կհեռացնի այն հիշողությունից, երբ անհրաժեշտ լինի, և դուք կարող եք այն վերագործարկել՝ հպելով հավելվածի պատկերակին»:
Ճիշտ չէ. Իրավիճակը մի փոքր այլ է։ Տիպիկ օրինակ. ես ունեմ պահանջկոտ հավելվածներ, որոնք աշխատում են հետին պլանում, ինձ խաղեր են պետք: Գործարկում եմ բրաուզերը, բացում եմ մի քանի ներդիր -> ավելի շատ հիշողություն է պետք: Ի՞նչ է լինելու։ Դժվար հավելվածները մնում են հետին պլանում, ընդհակառակը, ԲՐԱՈՒՍԵՐՆ ԻՆՔՆ Է ԸՆԿՎՈՒՄ։ Եթե ես փակում եմ պահանջկոտ հավելվածները ձեռքով, ապա բրաուզերը երկար ժամանակ աշխատում է առանց որևէ խնդիրների:
Սա պրակտիկա է, ոչ թե տեսություն: Եվ ես զարմացած եմ, որ որպես Apple-ի արտադրանքի երկարաժամկետ օգտագործող, դուք դեռ չգիտեք սա:
Շնորհակալություն, սա շատ լավ նկարագրված և լավ բացատրված է: Դուք ինձ բավականին օգնեցիք ;-) ♥
Պարզապես, ես ոչ կողմ եմ, ոչ դեմ iOS-ին, ինչպես Android-ի դեպքում, բայց այստեղ մի քանի տարօրինակ բան կա, եթե ինչպես գրված է այստեղ. տարին մեկ անգամ՝ -Պ
http://dotekomanie.blog.mobilmania.cz/2012/02/stabilita-ios-vs-android/
Այո, բայց այն դեպքերը, երբ դուք պետք է փակեք հավելվածը ձեռքով, իսկապես նվազագույն են, ես այն օգտագործել եմ մոտ մեկ անգամ: ;-) իսկ Mobilemania-ից համեմատական թեստի հղում տալը միանգամայն անիմաստ է, երբ ուզում եմ կարդալ Google-ի վճարած գովազդի մասին, կնայեմ այնտեղ ;-) բոլորը կարող են ձեռքին ցանկացած android հեռախոս ստանալ և դա չի աշխատի մաքուր, այսինքն՝ բացառությամբ Galaxy Nexus-ի, որը համակարգը քիչ թե շատ հարմարեցված է: Ընդհանուր առմամբ, Android-ը աղետ է
@Mek – Ես մի քանի տարի ամեն օր օգտագործում եմ Apple-ի արտադրանքները, և դա ինձ հետ երբեք չի պատահել, ուստի ձեր տեսությունը ինչ-որ կերպ չի աշխատում:
մոլախոտ:
@redakce – Դուք կարող եք տեսնել, որ կայքը անընդհատ աշխատում է կամ ինչ-որ բան է կատարվում դրա հետ, բայց ես այնպիսի զգացողություն ունեմ, որ մեկ շաբաթ չի պահանջվում, որպեսզի ամեն ինչ աշխատի այնպես, ինչպես պետք է: Իսկ ես իրականում այլեւս այստեղ չեմ գալիս, քանի որ նոր տեսքն ինձ չի սազում։ Գոնե iPhone-ի մոբայլ տարբերակն էի օգտագործում, բայց հիմա ընդհանրապես չի աշխատում - ո՞նց: Նրանք այս պահին չեն արձագանքում մեկնաբանություններում տեղադրված գրառումներին:
@SteveJSF Ցավոք, ամեն ինչ միշտ չէ, որ ստացվում է այնպես, ինչպես մենք ենք ուզում: Ինչ վերաբերում է պատասխաններին, ապա նոր SEO հավելվածը կոտրել է դրանք, այն ներկայումս լուծվում է:
WP-Touch-ը նույնպես ինչ-ինչ պատճառներով դադարեցրեց մեր ծառայությունը, ուստի մենք որոշեցինք ավելի լավ լուծում գտնել, քան այս հավելվածը: Այսպիսով, դուք կարող եք շուտով սպասել հաջորդ նորություններին :-)
Հաճելի հոդված: Ինչ վերաբերում է պրակտիկային, ասեմ, որ ես համաձայն եմ մի քանի բանի հետ և շատ ժամանակ այն աշխատում է այնպես, ինչպես ասված է, բայց ցավոք, դեռևս կան վատ գրված դիմումներ, որոնք իրենց ճիշտ չեն պահում, և հետո կան նման դեպքեր. նշում են որոշ ընթերցողներ. Կարծում եմ, որ Skype-ը շատ լավ օրինակ է, ես պրակտիկայից գիտեմ, որ այն դեռ աշխատում է հետին պլանում (և դա լավ է, և այդպես էլ պետք է լինի), բայց խնդիրն այն է, որ այս հավելվածը շատ է լիցքաթափում սարքի մարտկոցը և Ես այլևս չեմ կարող դա պատշաճ կերպով տեսնել: Ընդհակառակը, այնպիսի հավելվածներ, ինչպիսիք են Facebook-ը, Badoo-ն և այլն: նրանք նույնպես դեռ աշխատում են հետին պլանում, բայց դրանց սպառումը գրեթե աննկատ է (համենայն դեպս ես չեմ նկատում): Այսպիսով, կարծում եմ, որ սխալը առանձին հավելվածների մեջ է: Եթե իմանայիք, թե որոնք են, բավական կլիներ ձեռքով անջատել միայն դրանք:
Այսպիսով, պրակտիկան այն է, որ Facebook-ն աշխատում է ըստ անհրաժեշտության, իսկ Skype-ը միայն անհրաժեշտության դեպքում:
Դե, մյուս կողմից, եթե ես պետք է խնայեմ մարտկոցը և գիտեմ, որ պետք է iPhone-ը հնարավորինս երկար «կենդանի» պահեմ, ես նաև անջատում եմ այն ամենը, ինչ ավելորդ է բազմաբնույթ առաջադրանքների ժամանակ, բայց հիմնականում դա մեծ ազդեցություն չի ունենում, բայց անհրաժեշտության դեպքում ես սահմանափակում եմ 3G-ը, ամբողջ բջջային ինտերնետը, WiFi-ը, տեղորոշման ծառայությունները, ինքնաթիռի ռեժիմը, լուսավորության ուժը և այլն: Որպես առօրյայի մաս՝ ես նաև անջատում եմ վերը նշված հավելվածները բազմաֆունկցիոնալ ռեժիմում:
Այսպիսով, անձամբ ես կարծում եմ, որ հոդվածը ճիշտ է, ցավոք, որոշ ծրագրավորողներ հերքում են այս բաները իրենց հավելվածներով, քանի որ նրանց դիմումները սխալ են, և իմ կարծիքով դրա համար կա միայն երկու լուծում. 1. Եթե հնարավոր է չօգտագործել հավելվածը և գտնել այլընտրանք, եթե հնարավոր է, կամ 2. Եթե դա հնարավոր չէ, տե՛ս, օրինակ, Skype-ը, գրի՛ր տվյալ ծրագրավորողին զեկույցում և հուսով եմ, որ նրանք ինչ-որ բան կանեն դրա դեմ։
Միգուցե անիմաստ է անջատել հավելվածները ձեռքով, բայց ես դա անում եմ ամեն դեպքում: Ես էլ փորձեցի հավելվածի համակարգը չանջատել, թող աշխատեն (կամ թողնեմ քնած ֆոնին) ու մարտկոցի ժամկետը շատ ավելի քիչ էր, պետք էր նաև iPad 2-ը վերագործարկել մոտ երեք շաբաթ հետո, կամաց արձագանքեց։ Այսպիսով, ես անջատում եմ հավելվածները ձեռքով, մարտկոցն ավելի երկար է տևում, ես վերջերս վերագործարկեցի Սուրբ Ծննդյան օրը և այն լավ է աշխատում:
Ի դեպ, ես նույն բանն անում եմ Mac OS X-ում, ուղղակի փակում եմ այն հավելվածը, որն ինձ պետք չէ (CMD+Q), ավելի լավ է, քան այն քնի ֆոնին և անտեղի ուտի RAM-ը (ինչը OS X-ը կարող է։ շատ լավ չի աշխատում): Ես քիչ օպերատիվ հիշողություն ունեմ, ընդամենը 8 ԳԲ, բայց Windows 7-ում 8 ԳԲ-ով, համակարգը դանդաղ չէր արձագանքում կամ փոխանակում, OS X-ում սա բավականին տարածված երևույթ է (ես երբեք չեմ անջատել համակարգիչը, դա անում եմ նաև Mac-ով , այնպես որ մեկ ամիս և ավելին բացառություն չէ, խնդիրն այն է, որ ես երբեմն պետք է վերագործարկեմ Mac-ը որպես նախազգուշական միջոց RAM-ն ազատելու և «արագացնելու» համար, Windows 7-ին դա պետք չէ):
Ինձ ավելի շատ հետաքրքրում է, թե ինչպես իրականում պայթեցնել հավելվածը: Ինձ հետ պատահեց, որ հավելվածը (մասնավորապես Geocaching-ում) հայտնվել է մի վիճակի մեջ, որտեղ ինչ-որ բան էր բեռնում մայր սերվերից և խրվել է այդ վիճակում: Home կոճակը աշխատեց, վերաբեռնումից հետո այն վերադարձավ սառեցված վիճակի (որտեղ ես դադարեցի): Ձեռքով ելք (դեպի բազմաճաշակ ընտրացանկ, պահեք պատկերակը և մինուսը փակելու համար) = հավելվածն անհետացավ, վերագործարկելուց հետո այն բացվեց իր սկզբնական վիճակում, որտեղ այն սառեց: Այսպիսով, ես փակեցի ամեն ինչ, անջատեցի հեռախոսը, միացրեցի այն, կրկնակի սեղմեցի HOME և ահա, հավելվածները բոլորն այնտեղ էին, ինչպես փակվելուց անմիջապես առաջ: Վերագործարկումն էլ չօգնեց՝ պահել տուն և վերև, մինչև տաքանա: Միակ բանը, որ օգնեց, հավելվածը հեռախոսից հեռացնելն էր, այն վերագործարկելն ու նորից տեղադրել հեռախոսում։ Ինչ-որ կերպ չընդունեցի:
Multitasking-ի այս կառավարումն աշխատում է, և մշակողների խնդիրն է հաղթահարել այս իրավիճակները: Ողջ իրավիճակի ավելի մանրամասն ու մասնագիտական նկարագրությամբ հետաքրքրվողների համար այստեղ գրեմ, թե ինչպես է դա։
Հավելվածը կարող է արձագանքել ընդհանուր առմամբ 6 նահանգների, և այդ վիճակներն են.
applicationWillResignActive
applicationDidEnterBackground
applicationWillEnterForeground
applicationDidBecomeActive
դիմումը կդադարեցվի
applicationDidReceiveMemoryWarning
Այժմ ես կփորձեմ ավելի մանրամասն նկարագրել այս պետությունները։
applicationWillResignActive – այս կարգավիճակը նշանակում է, որ ապագայում (մի քանի միլիվայրկյան) հավելվածը կհրաժարվի որպես ակտիվ հավելված (այսինքն՝ հավելվածը առաջին պլանում) դա տեղի է ունենում, օրինակ, երբ դիմումն օգտագործելիս զանգ եք ստանում, բայց միևնույն ժամանակ։ այն ժամանակ, երբ այս մեթոդը կգործարկվի նույնիսկ նախքան հավելվածը հետին պլան անցնելը, այնպես որ դուք պետք է հաշվի առնեք այս փոփոխությունները: Այս մեթոդը հարմար է նաև այնպես, որ, օրինակ, այն դադարեցնի իր կատարած բոլոր գործողությունները, երբ կա մուտքային զանգ և սպասի մինչև զանգի ավարտը:
applicationDidEnterBackground - այս կարգավիճակը ցույց է տալիս, որ հավելվածը մտել է հետին պլան, մշակողները պետք է օգտագործեն այս մեթոդը՝ կասեցնելու բոլոր գործընթացները, որոնք պարտադիր չէ, որ գործարկվեն հետին պլանում և մաքրեն չօգտագործված տվյալների և այլ գործընթացների հիշողությունը, օրինակ՝ ժամկետանց ժամանակաչափեր հիշողության մեջ բեռնված պատկերներ, որոնք պարտադիր չէ, որ անհրաժեշտ լինեն կամ կդադարեցնեն կապը սերվերների հետ, եթե հավելվածի համար կարևոր չէ կապը հետին պլանում ավարտելու համար: Ըստ էության, այս մեթոդը, երբ կանչվում է հավելվածում, պետք է օգտագործվի հավելվածն ամբողջությամբ կասեցնելու համար, եթե դրա որոշ մասը չի պահանջվում գործարկել հետին պլանում:
applicationWillEnterForeground – այս վիճակն առաջին վիճակի հակառակն է, երբ հավելվածը դուրս կգա ակտիվ վիճակին: Հավելվածի այս վիճակը պարզապես նշանակում է, որ առաջիկա մի քանի միլիվայրկյանների ընթացքում քնած հավելվածը կվերսկսվի ֆոնից և կհայտնվի առաջին պլանում (հավելվածը մտնում է առաջին պլան), այս մեթոդը պետք է օգտագործվի ծրագրավորողների կողմից՝ վերսկսելու բոլոր գործընթացները, որոնք անգործուն են եղել, երբ հավելվածը եղել է։ հետին պլանում սերվերների հետ կապերը պետք է վերականգնվեն, ժամանակաչափերը զրոյացվեն, պատկերները և տվյալները բեռնվեն հիշողության մեջ, և այլ անհրաժեշտ գործընթացները կարող են վերսկսվել հենց օգտատերը բեռնված հավելվածը նորից տեսնելուց անմիջապես առաջ:
applicationDidBecomeActive – այս կարգավիճակը ցույց է տալիս, որ հավելվածը նոր է ակտիվացել առաջին պլան վերականգնվելուց հետո, սա մեթոդ է, որը կարող է օգտագործվել օգտատիրոջ միջերեսում լրացուցիչ ճշգրտումներ կատարելու կամ միջերեսը սկզբնական վիճակին վերականգնելու համար և այլն: Այս մեթոդը իրականում տեղի է ունենում: երբ օգտվողն արդեն կարող է տեսնել էկրանին, ուստի անհրաժեշտ է հաշվեկշռից որոշել, թե ինչ է կատարվում այս և նախորդ մեթոդով: Դրանք կոչվում են մեկը մյուսի հետևից մի քանի միլիվայրկյան տարբերությամբ։
applicationWillTerminate - այս վիճակը տեղի է ունենում հավելվածի ավարտից մի քանի միլիվայրկյան առաջ, այսինքն՝ մինչև հայտը փաստացի չդադարեցվի: Կամ ձեռքով մի քանի առաջադրանք կատարելուց կամ սարքն անջատելիս: Այս մեթոդը պետք է օգտագործվի մշակված տվյալները պահպանելու և բոլոր գործողություններն ավարտելու և այն տվյալները ջնջելու համար, որոնք այլևս կարիք չեն ունենա:
applicationDidReceiveMemoryWarning - և սա պայման է, որն այստեղ շատ է քննարկվում, անհրաժեշտության դեպքում iOS-ը կհեռացնի հավելվածը հիշողությունից, եթե այն անտեղի օգտագործի համակարգի ռեսուրսները: Ես չգիտեմ, թե կոնկրետ ինչ է անում iOS-ը ֆոնային հավելվածների հետ, բայց եթե նրան անհրաժեշտ է հավելված՝ այլ գործընթացների համար ռեսուրսներ թողարկելու համար, այն հուշում է նրան հիշողության նախազգուշացումով՝ ազատել իր պահած ռեսուրսները: Այսպիսով, այս մեթոդը կոչվում է հավելվածում, և ծրագրավորողները պետք է այն իրականացնեն, որպեսզի հավելվածը հրաժարվի իր ունեցած հիշողությունից, պահպանի մշակվածը և ջնջի ավելորդ տվյալները հիշողությունից, այլապես համարժեք կերպով ազատի հիշողությունը: Ճիշտ է, շատ ծրագրավորողներ, օրինակ սկսնակները, չեն մտածում նման բաների մասին կամ չեն հասկանում դրանք, և հետո կարող է պատահել, որ նրանց հավելվածը վտանգի ենթարկի մարտկոցի կյանքը և/կամ անհարկի սպառի համակարգի ռեսուրսները նույնիսկ հետին պլանում։ Ես չգիտեմ, թե ինչպես կվարվի iOS-ը, եթե հավելվածը ոչինչ չանի հիշողության նախազգուշացում ստանալուց հետո և շարունակի սպառել համակարգի ռեսուրսները, ինչպես նախկինում:
Այս մի քանի վիճակները և դրա հետ կապված մեթոդները կանգնած են iOS-ի ամբողջ «բազմախնդիրների» հետևում... դա հիանալի համակարգ է, եթե մշակողները չանտեսեն պատասխանատվություն կրելու անհրաժեշտությունը այն մասին, թե ինչ կհայտնեն հավելվածներն իրենց օգտատերերի սարքերի վրա, եթե դրանք նվազագույնի հասցվեն: կամ ստանալ նախազգուշացումներ համակարգից և ավելին…
Հուսով եմ, որ այս հակիրճ նկարագրությունը կօգնի ձեզ հասկանալ, թե ինչպես է հավելվածը ներգրավված ամեն ինչ սահուն աշխատելու գործում: Այսպիսով, կարելի է ասել, որ դա օգտատիրոջ կողմից սխալ օգտագործման սխալ է, ինչը կարելի է հասկանալ այսպես. եթե դուք օգտագործում եք հիմնականում անվճար հավելվածներ սիրողական մշակողների կողմից մեծ քանակությամբ, ձեր iOS սարքը կաշխատի ավելի վատ, քան եթե օգտագործեք մեծ փորձառու կամ պրոֆեսիոնալ ծրագրավորողների անվճար և վճարովի հավելվածների քանակը: Սա չի նշանակում, որ երկու շրջանակներում էլ բացառություններ չկան։ Օրինակ, foursquare-ն իրեն բավականին տարօրինակ և պահանջկոտ է պահում, և միևնույն ժամանակ արդեն կարելի է ակնկալել, որ նրանք շատ հմուտ ծրագրավորողներ են, որոնք շատ ժամանակ են հատկացնում հիշողության և մարտկոցի կառավարմանը, բայց ճիշտ հակառակն է։ 4SQ-ի ամենամեծ խնդիրը սերվերների հետ շփումն է, որը հաճախ կախված է և ծանրաբեռնված: Սա ընդամենը մի օրինակ է այն փաստի, որ նույնիսկ հայտնի հավելվածները խնդիրներ ունեն, ինչը չի փոխում այն փաստը, որ 4SQ-ը հիանալի ծառայություն է։
Զվարճացեք խնձորներ!! :)
Մենք հոդվածում տեղեկատվությունը ավելացրել ենք հեղինակի բարի թույլտվությամբ ;-)
Ներողություն եմ խնդրում, ENTER-ը ամենուր պարբերությունների միջև էր, նրանք կարող էին ինչ-որ բան անել դրա դեմ այստեղ, որպեսզի մեկնաբանություններում գոնե մի փոքր RICH TEXT FORMATING լինի:
ArnieX: շնորհակալություն մեկնաբանության համար:
Ֆարամիրին. Ես միայն ձեր խնդրի մասին եմ, չգիտեմ, արդյոք դա կօգնի ձեր դեպքում, բայց ես իմ սեփական փորձից գիտեմ, որ եթե փակեք հավելվածը (բազմաֆունկցիոնալությամբ), մի քանի վայրկյան կպահանջվի մինչև այն փակվի, այնպես որ, եթե դուք անջատեք այն, խորհուրդ եմ տալիս սպասել մի քանի վայրկյան (ես սպասում եմ մոտավորապես 10 վայրկյան, որպեսզի համոզվեմ) մինչև այն հաստատ ավարտվի և միայն դրանից հետո նորից սկսեմ այն:
Բարի գալուստ ;) Ես ուրախ կլինեմ օգնել, եթե հնարավորություն ունենամ ներդրում ունենալ:
Meeb-ի հետ ոնց պիտի լինի, որ դրա միջոցով մտնում եմ ICQ կամ FB chat, ավտոմատ դուրս է գալիս 10 րոպեից ու դուրս եմ գալիս օֆլայն, թե՞ շարունակում է աշխատել։ շնորհակալություն պարզաբանման համար :P
Տասը րոպե անց հավելվածի միացումը ինտերնետին ուղղակի ընդհատվում է։ Այնուամենայնիվ, դուք դեռ առցանց կլինեք Meeba սերվերում և կստանաք push ծանուցում, եթե ինչ-որ մեկը ձեզ գրի: Հավելվածը վերաբացելուց հետո կապը մի պահ կհաստատվի, և դուք կարող եք ուրախությամբ շարունակել զրուցել։
Այսպիսով, եթե ես ճիշտ հասկացա ձեր կապած հոդվածը, վիճակագրությունը վերաբերում է միայն հավելվածների խափանումներին, երբ դրանք սկսվում են, ինչը բավականին փոքր տոկոս է այն դեպքերի համար, երբ կարող են խափանումներ լինել: Հետեւաբար, այս «հետազոտությունից» անհնար է եզրակացնել, որ iOS-ն իմ կարծիքով պակաս կայուն է։ Ավելին, Forbes-ից վերցված հոդվածի թարգմանիչը մոռացել է նշել, որ հավելվածների խափանումների վերաբերյալ տվյալներ տրամադրող ընկերությունը, ի թիվս այլոց, աջակցվում է Google-ի կողմից («Crittercism, որը աջակցում է Google Ventures,...»):