iOS'то көп тапшырма кантип иштээрин билбегендер дагы эле көп. Баштоо үчүн, бул чыныгы көп тапшырма эмес, системага же колдонуучуга оорчулук келтирбеген абдан акылдуу чечим экенин белгилей кетүү керек.
iOS'тун фонунда иштеген колдонмолор операциялык эстутумду толтурат деген ырым-жырымдарды көп угууга болот, бул системанын жайлашына жана батареянын иштөө мөөнөтүн азайтат, андыктан колдонуучу аларды кол менен өчүрүшү керек. Көп тапшырма тилкесинде иш жүзүндө бардык иштеп жаткан фон процесстеринин тизмеси камтылбайт, бирок эң акыркы ишке киргизилген тиркемелер гана. Ошентип, колдонуучу бир нече учурларды кошпогондо, фондо иштеп жаткан процесстер жөнүндө тынчсыздануунун кереги жок. Үй баскычын басканда, тиркеме адатта уктап калат же жабылат, ошентип ал мындан ары процессорду же батарейканы жүктөбөйт жана керек болсо керектүү эстутумду бошотот.
Демек, сизде ондогон процесстер иштеп турганда, бул толук кандуу көп тапшырма эмес. Фондо бир нече кошумча процесстер гана иштейт. Ошондуктан iOS'то колдонмонун бузулушуна сейрек учурайсыз, мисалы, Android колдонуучу кам көрүшү керек болгон иштеп жаткан тиркемелерге толуп калган. Бул бир жагынан аппарат менен иштөөнү жагымсыз кылат, ал эми экинчи жагынан, мисалы, жай баштоо жана тиркемелердин ортосунда өтүүлөрдү жаратат.
Колдонмонун иштөө убактысынын түрү
iOS түзмөгүңүздөгү колдонмо бул 5 абалдын биринде:
- Иштеп жатат: колдонмо башталган жана алдыңкы планда иштеп жатат
- Фон: ал дагы эле иштеп жатат, бирок фондо иштеп жатат (башка колдонмолорду колдоно алабыз)
- Токтотулган: Дагы эле RAM колдонууда, бирок иштебейт
- Жигерсиз: колдонмо иштеп жатат, бирок кыйыр буйруктар (мисалы, колдонмо иштеп турганда аппаратты кулпулоодо)
- Иштебейт: Колдонмо токтотулду же баштала элек
Тынчсыздандырбоо үчүн колдонмо фондо өткөндө башаламандык пайда болот. Үй баскычын басканда же тиркемени (iPad) жабуу үчүн жаңсоону колдонгондо, тиркеме фонго өтөт. Көпчүлүк колдонмолор секунданын ичинде убактылуу токтотулат (Алар iDevice'тин оперативдүү эсинде сакталат, ошондуктан алар тез ишке киргизилет, алар процессорду көп жүктөбөйт жана батареянын иштөө мөөнөтүн үнөмдөйт) Эгер колдонмо эстутумду колдоно берсе, сизде аны бошотуу үчүн кол менен жок кылуу. Бирок муну кылуунун кереги жок, анткени iOS муну сиз үчүн жасайт. Эгер сизде көп көлөмдөгү оперативдүү эстутумду колдонгон оюн сыяктуу талап кылынган тиркемеңиз фондо токтотулса, iOS керек болгондо аны эстутумдан автоматтык түрдө алып салат жана колдонмонун сөлөкөтүн таптап, аны өчүрүп күйгүзсөңүз болот.
Бул абалдардын бири дагы көп тапшырма тилкесинде чагылдырылбайт, тилке колдонмо токтоп, тындырылып же фондо иштеп жатканына карабастан, жакында ишке киргизилген колдонмолордун тизмесин гана көрсөтөт. Ошондой эле учурда иштеп жаткан тиркеме Көп тапшырма панелинде көрүнбөй турганын байкасаңыз болот
Фондук тапшырмалар
Адатта, сиз Башкы бет баскычын басканда, тиркеме фондо иштейт, ал эми сиз аны колдонбосоңуз, ал автоматтык түрдө беш секунддун ичинде тыным алат. Андыктан, мисалы, сиз подкастты жүктөп жатсаңыз, система аны иштеп жаткан тиркеме катары баалайт жана токтотууну он мүнөткө кечиктирет. Кечинде он мүнөттөн кийин процесс эс тутумдан бошотулат. Кыскасы, жүктөө процессин бүтүрүү үчүн 10 мүнөттөн ашык убакыт талап кылынбаса, Башкы баскычты басуу аркылуу жүктөө процессин үзгүлтүккө учуратып алуудан кабатыр болбоңуз.
Фондо чексиз чуркоо
Кыймылсыз болгон учурда, система тиркемени беш секунддун ичинде токтотот, ал эми жүктөлүп алынган учурда, токтотуу он мүнөткө кечигет. Бирок, фондо иштөөнү талап кылган аз сандагы тиркемелер бар. Бул жерде iOS 5те фондо чексиз иштей турган колдонмолордун айрым мисалдары келтирилген:
- Үн ойнотуучу жана бир азга үзгүлтүккө учурашы керек болгон тиркемелер (телефон чалуу учурунда музыканы тындыруу ж.б.),
- Жайгашкан жериңизге көз салган колдонмолор (навигация программасы),
- VoIP чалууларды кабыл алган тиркемелер, мисалы, Skype колдонсоңуз, колдонмо фондо турганда да чалууну кабыл ала аласыз,
- Автоматтык жүктөөлөр (мисалы, Newsstand).
Бардык тиркемелер мындан ары тапшырманы аткарбай калса, жабылышы керек (мисалы, фондо жүктөөлөр). Бирок, тынымсыз фондо иштей турган өзгөчөлүктөр бар, мисалы, жергиликтүү Почта колдонмосу. Эгер алар фондо иштеп жатса, алар эстутумду ээлеп, CPU колдонууну же батареянын иштөө мөөнөтүн кыскартат
Фондо чексиз иштөөгө уруксат берилген колдонмолор музыка ойнотуудан тартып жаңы Подкаст эпизоддорун жүктөп алууга чейин иштеп жатканда эмне кылса болот.
Мен мурда айтылгандай, колдонуучу эч качан фондо иштеп жаткан колдонмолорду жабуунун кереги жок. Фондо иштеп жаткан колдонмо бузулганда же уйкудан ойгонбой калганда гана өзгөчөлүктөр бар. Андан кийин колдонуучу тиркемелерди көп тапшырма тилкесинде кол менен жаба алат, бирок бул чанда гана болот.
Ошентип, жалпысынан фондо процесстерди башкаруунун кереги жок, анткени система аларга өзү кам көрөт. Ошондуктан iOS ушунчалык жаңы жана тез система.
Иштеп чыгуучунун көз карашы боюнча
Колдонмо көп тапшырманын бир бөлүгү катары жалпысынан алты түрдүү абалга жооп бере алат:
1. applicationWillResignActive
Котормодо бул абал тиркеме келечекте (бир нече миллисекундда) активдүү тиркеме (б.а. алдыңкы пландагы тиркеме) болуу кызматынан баш тарта турганын билдирет. Бул, мисалы, тиркемени колдонуу учурунда чалууну кабыл алууда болот, бирок ошол эле учурда, бул ыкма ошондой эле тиркеме фонго өткөнгө чейин бул абалды жаратат, андыктан бул өзгөртүүлөрдү эске алуу керек. Бул ыкма ошондой эле ылайыктуу, мисалы, ал кирген чалуу болгондо аткарып жаткан бардык аракеттерди токтотуп, чалуунун аягына чейин күтөт.
2. applicationDidEnterBackground
Статус колдонмо фонго өткөнүн көрсөтөт. Иштеп чыгуучулар бул ыкманы сөзсүз түрдө фондо иштетүүнү талап кылбаган бардык процесстерди токтотуу жана пайдаланылбаган маалыматтардын жана башка процесстердин эс тутумун тазалоо үчүн колдонушу керек, мисалы, мөөнөтү бүтүп жаткан таймерлер, эстутумдан жүктөлгөн сүрөттөрдү сөзсүз түрдө талап кылынбай турган же жабуу. серверлер менен байланыштар, эгерде тиркеме үчүн фондо туташууларды аяктоо өтө маанилүү болбосо. Метод тиркемеде чакырылганда, ал негизинен колдонмону толугу менен токтотуу үчүн колдонулушу керек, эгерде анын кандайдыр бир бөлүгү фондо иштөө үчүн талап кылынбаса.
3. applicationWillEnterForeground
Бул абал биринчи абалга карама-каршы келет, мында колдонмо активдүү абалга өтөт. Мамлекет жөн гана уктап жаткан колдонмо фондо уланып, кийинки бир нече миллисекундда алдыңкы планда пайда болот дегенди билдирет. иштеп чыгуучулар бул ыкманы тиркеме фондо турганда жигердүү эмес процесстерди улантуу үчүн колдонушу керек. Колдонуучу жүктөлгөн тиркемени кайра көрө электе эле серверлерге туташуулар кайра түзүлүшү керек, таймерлер баштапкы абалга келтирилиши керек, сүрөттөр жана маалыматтар эстутумга жүктөлөт жана башка керектүү процесстер кайра башталышы мүмкүн.
4. applicationDidBecomeActive
Мамлекет тиркеме алдыңкы планга калыбына келтирилгенден кийин жаңы эле активдүү болуп калганын көрсөтөт. Бул колдонуучу интерфейсине кошумча оңдоолорду киргизүү же UIди баштапкы абалына келтирүү ж.б. үчүн колдонулушу мүмкүн болгон ыкма. Бул иш жүзүндө колдонуучу тиркемени дисплейде көрүп турган учурда болот, андыктан аны колдонуу керек. бул ыкмада жана мурунку ыкмада эмне болорун этияттык менен аныктаңыз. Алар бир нече миллисекунддук айырма менен биринин артынан бири аталат.
5. applicationWillTerminate
Бул абал колдонмо чыгуудан бир нече миллисекунд мурун, башкача айтканда, колдонмо иш жүзүндө токтогонго чейин болот. Көп тапшырмадан кол менен же аппаратты өчүрүп жатканда. Метод иштетилген маалыматтарды сактоо, бардык аракеттерди токтотуу жана мындан ары кереги жок болгон маалыматтарды жок кылуу үчүн колдонулушу керек.
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ди да сатып алдым жана акыры 4s менен аяктадым, бул WP7ге караганда колдонууга ыңгайлуулуктун такыр башка деңгээлин билдирет. Ошентип, плиткалар аркылуу жагымдуу жана чексиз жылдырып өтүңүз.
Мен Пажа менен толук кошулам
Мен дагы бир баррелдин сыныктарынан салым кошмокмун - Samsung Galaxy S жана iPhone 4 - мен жашы боюнча салыштырууга болот деп айтмакмынбы? IOS 4 учурунда жана Android'ден башка жерде колдонууга ыңгайлуулугу жана ылдамдыгы жагынан Apple тиркемелер менен иштөө концепциясын абдан жакшы чечти, бирок Android менен дагы бирдей эмес. Акыр-аягы, мен баары бир 4S менен аяктадым жана менде эч кандай даттануулар жок, анткени "ал жөн гана иштейт" .. жана ал абдан тез иштейт!
Теория сонун экен... Бирок практикада мен баары бир тиркемени тилкеде жаап коём ;)
Рахмат, абдан кызыктуу, прагматикалык, кызыктуу, селкинчек жана тереңдик жок. Азыркы жаштардын бул тыюу салынган брендге болгон кызыгуусун олуттуу түрдө баса белгилеп! Бирок ага, ошондой эле бул макала үчүн рахмат.
Макала таптакыр туура эмес.
Ката айтылгандай, Башкы бет баскычы басылганда тиркеме иштен чыкпайт, бирок тыным болот. б.а. сөзсүз эс тутумдан өчүрбөңүз жана таштабаңыз. Жөн гана иштетүүнү тындырыңыз, iOS бул колдонмого 0% CPU убактысын берет. Ал, албетте, макалада айтылгандай, iDevice эс тутумунун эч бир жеринде "алмашпайт". Бул колдонмону которуштурууну колдонууга мүмкүн болгондугунун аркасында.
Приоритеттүү башка тиркемелерди иштетүү үчүн телефондун эстутуму аз болгондо тиркеме эстутумдан алынып салынат (адатта башка тиркеме алдыңкы планда иштеп жатат).
Биринчи учурда, сиз туура айтасыз, бул котормо катасы болгон. Алмашууга келсек, биз бул жерде ал жөнүндө эмес, iOS түзмөгүндөгү сактоо мейкиндиги эмес, операциялык эс тутум жөнүндө сөз болуп жатат.
колдонмонун сүрөтү буйрук менен кайра чакырылмайынча эстутумда чектелген убакытка сакталат (караңыз: 13,7 ГБ ичинен 16 ГБ: 2,3 ГБ тутум жана колдонмону токтотуу үчүн сакталган)
Ошентип, Навигация, Skype жана ушул сыяктуу тиркемелерди айырмалоо керек, бул тиркемелер фонунда да активдүү бойдон калууда, же белгилүү бир функция бүтпөйт жана улантат, мисалы, анын жайгашкан жери же жайгашкан жери жөнүндө маалыматтарды жөнөтүү. Же Vokul сыяктуу pord режиминде угуңуз жана көп тапшырма дагы эле фондо угууда.
Бул тиркемелер батареяны түгөтөт жана аларды iOS үчүн күтпөстөн, кол менен жабуу керек. башкалар менен бул кереги жок, колдонмо бузулган учурда гана бар.
Макала менен макул боло албайм. Мин. 1-муундагы iPad'де (iOS 5.0.1) менде көп тапшырма тилкесинде "ачык" колдонмолор көпбү же бир нечеси гана көрүнүп турат. iOS эстутумду тазалоого аракет кылат, бирок, албетте, бул жетишсиз - RAMдын кичинекей өлчөмү, балким, анын эң чоң алсыздыгы.
ошондуктан көп нерсе тутумга жана колдонулган аппараттык камсыздоого жараша болот, ал iOS 1 менен iPad 5.0.1де 2-муундагы iPadга караганда начарраак болот.
Кечиресиз, досум, бул анын иштеши керек болгон ИДЕАЛ ыкмасынын сүрөттөлүшү. Тилекке каршы, чындык такыр башкача жана сиз Apple өнүмдөрүн колдонсоңуз, аны билмексиз, жок дегенде мендей (б.а. кээде).
"IOS'тун фонунда иштеген колдонмолор операциялык эстутумду толтурат деген ырым-жырымдарды көп угууга болот"
Бул ырым эмес, бул жөн гана факт. Кантсе да, сиз макалада аны өзүңүз ырастап жатасыз.
"Мен мурда айтып өткөндөй, колдонуучу эч качан фондо иштеп жаткан тиркемелерди жабуунун кереги жок."
НЕНСЕНС. Бул жөн эле шылдың, алманын пропагандасы, мага ачууланба.
«Бирок муну кылуунун кереги жок, анткени iOS муну сиз үчүн жасайт. Эгер сизде чоң көлөмдөгү оперативдүү эстутумду колдонгон оюн сыяктуу талап кылынган тиркемеңиз фондо убактылуу токтотулса, iOS керек болгондо аны эстутумдан автоматтык түрдө алып салат жана колдонмонун сөлөкөтүн таптап, аны өчүрүп күйгүзсөңүз болот.”
Чын эмес. Кырдаал бир аз башкача. Кадимки мисал – менде талап кылынган тиркемелер фондо иштеп жатат, мага оюндар керек. Мен браузерди ишке киргизем, бир нече өтмөк ачам -> көбүрөөк эс керек. Эмне болот? Мен арткы планда талап кылынган тиркемелерди кыла берем, тескерисинче, БРАУЗЕР ӨЗҮ ЖҮГҮЛҮП ЖАТАТ. Мен талап кылынган тиркемелерди кол менен жапсам, браузер эч кандай көйгөйсүз көпкө иштейт.
Бул теория эмес, практика. Жана мен таң калдым, Apple продуктунун узак мөөнөттүү колдонуучусу катары сиз дагы эле муну билбейсиз.
Рахмат, бул абдан жакшы сүрөттөлгөн жана жакшы түшүндүрүлгөн. Сиз мага бир топ жардам бердиңиз ;-) ♥
Баштоо үчүн, мен Android сыяктуу iOSту колдобойм да, каршы да эмесмин, бирок бул жерде бир нече таң калыштуу нерселер бар, эгерде бул жерде жазылгандай: "сиз 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 муну жасай алат' t абдан жакшы иштешет). Менин оперативдик эсим аз, болгону 8 ГБ, бирок Windows 7де 8 ГБ менен система жай реакция кылган жок же алмашты, OS Xде бул кеңири таралган көрүнүш (мен компьютерди эч качан өчүргөн эмесмин, мен муну Mac менен да жасайм, ошондуктан бир ай жана андан ашык убакыт өзгөчө эмес, көйгөй RAMды бошотуп, "тездетүү" үчүн, кээде мен Macти өчүрүп күйгүзүшүм керек, Windows 7ге мунун кереги жок).
Мен тиркемени кантип жардырууга көбүрөөк кызыгам. Мага эмне болду, тиркеме (айрыкча Geocaching боюнча) ата-энелик серверден бир нерсе жүктөгөн абалга келип, ошол абалда тыгылып калды. Башкы бет баскычы иштеди, кайра жүктөөдөн кийин ал тоңуп калган абалына кайтып келди (мен токтогон жерден). Кол менен чыгуу (көп даамы бар менюга, жабуу үчүн сөлөкөтүн кармап туруңуз жана минус) = колдонмо жоголуп кетти, кайра күйгүзгөндөн кийин ал тоңуп калган баштапкы абалында ачылды. Ошентип, мен баарын жаптым, телефонду өчүрдүм, күйгүздүм, HOME дегенди эки жолу чыкылдаттым, анан көрдүм - тиркемелер өчүрүлгөнгө чейин эле жабылганга чейинкидей эле. Кайра күйгүзүү да жардам берген жок - үйдү жана үстү ысыкка чейин кармап туруңуз. Колдонмону телефондон алып салуу, кайра күйгүзүү жана телефонго кайра орнотуу жардам берген жалгыз нерсе. Негедир мен кабыл алган жокмун.
Бул Multitasking башкаруу иштейт жана бул жагдайларды чечүү үчүн иштеп чыгуучулар көз каранды. Бүт кырдаалдын кеңири жана кесипкөй сүрөттөлүшүнө кызыккандар үчүн, мен бул жерде анын кандай экенин жазам.
Колдонмо жалпысынан 6 штатка жооп бере алат жана бул мамлекеттер:
applicationWillResignActive
applicationDidEnterBackground
applicationWillEnterForeground
applicationDidBecomeActive
applicationWillTerminate
applicationDidReceiveMemoryWarning
Эми мен бул мамлекеттерди кененирээк сүрөттөөгө аракет кылам.
applicationWillResignActive – бул статус келечекте (бир нече миллисекундда) тиркеме активдүү тиркеме (б.а. алдыңкы пландагы тиркеме) катары иштен чыга турганын билдирет, бул, мисалы, тиркемени колдонуу учурунда чалууну кабыл алууда болот, бирок ошол эле учурда убакыттын өтүшү менен бул ыкма колдонмо фонго өткөнгө чейин ишке кирет, андыктан бул өзгөртүүлөрдү эске алышыңыз керек. Бул ыкма ошондой эле ылайыктуу, мисалы, ал кирген чалуу болгондо аткарып жаткан бардык аракеттерди токтотуп, чалуунун аягына чейин күтөт.
applicationDidEnterBackground - бул статус тиркеме фонго өткөнүн көрсөтөт, иштеп чыгуучулар бул ыкманы сөзсүз түрдө фондо иштетүүнү талап кылбаган бардык процесстерди токтотуу жана пайдаланылбаган маалыматтардын эс тутумун жана башка процесстерди тазалоо үчүн колдонушу керек, мисалы, таймерлердин мөөнөтү бүткөн, эстутумга жүктөлгөн сүрөттөрдүн кереги жок же серверлер менен байланышты токтотуу, эгерде тиркеме үчүн туташууну фондо бүтүрүү үчүн маанилүү болбосо. Негизинен, бул ыкма тиркемеде чакырылганда, эгерде анын кандайдыр бир бөлүгү фондо иштөө талап кылынбаса, колдонмону толугу менен токтотуу үчүн колдонулушу керек.
applicationWillEnterForeground – бул абал тиркеме активдүү абалга чыга турган биринчи абалга карама-каршы келет. Колдонмонун бул абалы жөн гана кийинки бир нече миллисекунддарда уктап жаткан тиркеме фондон уланып, алдыңкы планда пайда болоорун билдирет (тиркеме алдыңкы планга кирет), бул ыкманы иштеп чыгуучулар тиркеме иштеп жатканда активдүү эмес болгон процесстерди улантуу үчүн колдонушу керек. фондо серверлер менен байланыштар калыбына келтирилиши керек, таймерлер баштапкы абалга келтирилиши керек, сүрөттөр жана маалыматтар эстутумга жүктөлөт жана башка керектүү процесстер колдонуучу жүктөлгөн тиркемени кайра көрө электе эле улана берет.
applicationDidBecomeActive – бул статус тиркеменин алдыңкы планга калыбына келтирилгенден кийин жаңы эле активдүү болуп калганын көрсөтөт, бул колдонуучу интерфейсине кошумча оңдоолорду киргизүү же UIди баштапкы абалына келтирүү ж.б.у.с. бул ыкма чындыгында болот. колдонуучу дисплейде мурунтан эле көрө алган учурда, баланстан бул ыкмада жана мурунку ыкмада эмне болуп жатканын аныктоо керек. Алар бир нече миллисекунддук айырма менен биринин артынан бири аталат.
applicationWillTerminate - бул абал колдонмо токтотулганга чейин бир нече миллисекундда, башкача айтканда, колдонмо иш жүзүндө токтотулганга чейин болот. Көп тапшырмадан кол менен же аппаратты өчүрүп жатканда. Бул ыкма иштетилген маалыматтарды сактоо жана бардык иш-аракеттерди токтотуу жана мындан ары кереги жок болгон маалыматтарды жок кылуу үчүн колдонулушу керек.
applicationDidReceiveMemoryWarning - бул жерде көп талкууланган шарт, эгер зарыл болсо, iOS тутум ресурстарын керексиз колдонсо, тиркемени эс тутумдан алып салат. Мен iOS фондук колдонмолор менен эмне кыларын так билбейм, бирок ага ресурстарды башка процесстерге чыгаруу үчүн колдонмо керек болсо, ал эс тутумунда турган ресурстарды бошотууну эскертет. Ошентип, бул ыкма тиркемеде чакырылат жана иштеп чыгуучулар аны тиркеме өзүнө ээ болгон эс тутумдан баш тартуусу, иштетилгенди сактап калуу жана эстутумдан керексиз маалыматтарды жок кылуу жана башка учурда эстутумду адекваттуу бошотушу үчүн ишке ашыруусу керек. Чындыгында, көптөгөн иштеп чыгуучулар, мисалы, жаңыдан баштагандар, мындай нерселер жөнүндө ойлонушпайт же аларды түшүнүшпөйт, анан алардын колдонмосу батареянын иштөө мөөнөтүн коркунучка алып келиши мүмкүн жана/же фондо тутумдук ресурстарды керексиз түрдө сарпташы мүмкүн. Эгер колдонмо эстутум боюнча эскертүү алгандан кийин эч нерсе кылбаса жана тутум ресурстарын мурдагыдай эле керектей берсе, iOS кандай иш кыларын билбейм.
Бул бир нече штаттар жана аны менен байланышкан ыкмалар iOS'тогу бүтүндөй "көп тапшырманын" артында турат... эгерде иштеп чыгуучулар колдонмолорду кичирейтсе, алардын колдонуучуларынын түзмөктөрүндө эмне пайда болоруна жоопкерчиликтүү болуу зарылдыгын этибарга албаса, бул эң сонун система. же системадан эскертүүлөрдү алуу жана башкалар ...
Бул кыскача сүрөттөмө сизге тиркеменин бардыгын бир калыпта иштөөсүнө кандайча катышарын түшүнүүгө жардам берет деп үмүттөнөм. Демек, бул колдонуучунун туура эмес колдонуусунун катасы деп айтууга болот, муну түшүнүүгө болот - эгер сиз көбүнчө ышкыбоздук иштеп чыгуучулардын бекер тиркемелерин көп санда колдонсоңуз, анда сиздин iOS түзмөгүңүз чоң программаны колдонгондон да начар иштейт. тажрыйбалуу же кесипкөй иштеп чыгуучулардын акысыз жана акы төлөнүүчү тиркемелеринин саны. Бул эки чөйрөдө эч кандай өзгөчөлүктөр жок деп айтууга болбойт. Мисалы, foursquare өзүн абдан кызыктай жана талапчылдык менен алып жүрөт, ошол эле учурда алар эстутумга жана батареяны башкарууга көп убакыт берген абдан тажрыйбалуу иштеп чыгуучулар деп күтүүгө болот, бирок тескерисинче. 4SQ менен эң чоң көйгөй - серверлер менен байланышуу, алар көбүнчө илинип калат жана ашыкча болот. Бул жөн гана белгилүү тиркемелерде да көйгөйлөр бар экендигинин бир мисалы, бул 4SQ сонун кызмат экенин өзгөртпөйт.
Бактылуу болгула Алма!! :)
Биз макалага маалыматты автордун уруксаты менен коштук ;-)
Кечиресиз, ENTER абзацтардын ортосунда бардык жерде болчу, алар бул жерде бир нерсе кыла алышмак, андыктан комментарийлерде бир аз болсо да БАЙ ТЕКСТ ФОРМАТТАШУУ болушу мүмкүн.
ArnieX: комментарий үчүн рахмат!!
Фарамирге: Мен жөн гана сиздин көйгөйүңүз жөнүндө, бул сиздин ишиңизде жардам берер-келбесин билбейм, бирок мен өз тажрыйбамдан билем, эгер сиз тиркемени жапсаңыз (көп тапшырмада) ал жабылганга чейин бир нече секунд талап кылынат. аны өчүрсөңүз, мен бир нече секунд күтүүнү сунуштайм (ишенүү үчүн мен болжол менен 10 секунд күтөм) ал сөзсүз бүткүчө жана андан кийин гана кайра баштайм.
Кош келиңиздер ;) Мүмкүнчүлүк болсо жардам берүүгө даярмын.
Meeb менен кандай болушу керек, мен ал аркылуу ICQ же FB чатына киргенимде, ал 10 мүнөттөн кийин автоматтык түрдө чыгып, мен оффлайн режимине кирем же ал иштейби? түшүндүрүү үчүн рахмат: P
Он мүнөттөн кийин тиркеменин Интернетке байланышы жөн эле үзгүлтүккө учурайт. Бирок, сиз Meeba серверинде дагы эле онлайн болосуз жана кимдир бирөө сизге кат жазса, сиз push эскертме аласыз. Тиркемени кайра ачкандан кийин, байланыш бир аздан кийин түзүлөт жана сиз бактылуу маекти уланта аласыз.
Ошентип, эгер мен сиз шилтеме кылган макаланы туура түшүнгөн болсом, статистика колдонмолордун бузулушуна, алар башталганда гана билдирет, бул кыйроолор болушу мүмкүн болгон учурлардын бир аз гана пайызы. Ошондуктан, бул “изилдөөдөн” менин оюмча iOS анча туруктуу эмес деген тыянак чыгарууга мүмкүн эмес. Андан тышкары, Forbes журналынан алынган макаланын котормочусу тиркемелердин бузулушу боюнча маалыматтарды берген компания башкалардын арасында Google тарабынан колдоого алынганын унуткан ("Crittercism, which is supported by Google Ventures,...").