iOS дээр олон үйлдэл хэрхэн ажилладагийг мэдэхгүй олон хүмүүс байсаар байна. Гэхдээ эхлээд энэ нь жинхэнэ олон үйлдэл биш, харин систем болон хэрэглэгчдэд дарамт учруулахгүй маш ухаалаг шийдэл гэдгийг тэмдэглэх нь зүйтэй.
IOS үйлдлийн систем дээр далд ажиллаж байгаа програмууд үйлдлийн санах ойг дүүргэдэг бөгөөд энэ нь системийн удаашрал, батерейны цэнэггүй байдалд хүргэдэг гэсэн мухар сүсгийг байнга сонсдог тул хэрэглэгч үүнийг гараар унтраах хэрэгтэй. Олон үйлдэлт самбар нь үндсэндээ ажиллаж байгаа бүх процессуудын жагсаалтыг агуулдаггүй бөгөөд зөвхөн хамгийн сүүлд эхлүүлсэн програмуудыг агуулдаг. Тиймээс хэрэглэгч хэд хэдэн тохиолдлоос бусад тохиолдолд далд ажиллаж байгаа процессуудын талаар санаа зовох шаардлагагүй болно. Таныг Нүүр товчийг дарахад програм нь ихэвчлэн унтдаг эсвэл хаагддаг тул процессор эсвэл зайг ачаалахаа больж, шаардлагатай бол шаардлагатай санах ойг чөлөөлдөг.
Иймд олон арван процесс ажиллаж байгаа үед энэ нь бүрэн хэмжээний multitasking биш юм.Зөвхөн нэг програм үргэлж урд талд ажиллаж байгаа бөгөөд шаардлагатай бол түр зогсоож эсвэл бүрмөсөн унтраадаг. Цөөн хэдэн хоёрдогч процессууд цаана нь ажилладаг. Тийм ч учраас та iOS дээр програмын эвдрэл гарах нь ховор, жишээлбэл, Андройд нь хэрэглэгчийн анхаарал тавих ёстой ажиллаж байгаа програмуудад дарагдсан байдаг. Нэг талаас, энэ нь төхөөрөмжтэй ажиллахад тааламжгүй болгодог бөгөөд нөгөө талаас, жишээлбэл, удаан эхлүүлэх, програмуудын хооронд шилжихэд хүргэдэг.
Програмын ажиллах цагийн төрөл
Таны iOS төхөөрөмж дээрх програм эдгээр 5 төлөвийн аль нэгэнд байна:
- Ажиллаж байна: програмыг эхлүүлж, урд талд ажиллаж байна
- Суурь: энэ нь ажиллаж байгаа боловч цаана нь ажиллаж байна (бид бусад програмуудыг ашиглаж болно)
- Түр түдгэлзүүлсэн: RAM ашиглаж байгаа ч ажиллахгүй байна
- Идэвхгүй: програм ажиллаж байгаа боловч шууд бус командууд (жишээ нь, програм ажиллаж байгаа төхөөрөмжийг түгжих үед)
- Ажиллахгүй байна: Аппликешн дуусгавар болсон эсвэл эхлээгүй байна
Аппликейшн нь саад болохгүйн тулд арын дэвсгэр рүү шилжих үед төөрөгдөл үүсдэг. Та Нүүр товчийг дарах юм уу дохио зангаагаар програмыг (iPad) хаах үед програм арын дэвсгэр рүү шилждэг. Ихэнх програмууд хэдхэн секундын дотор түр зогсдог (Тэдгээр нь iDevice-ийн RAM-д хадгалагддаг тул хурдан эхлүүлэх боломжтой, процессорыг тийм ч их ачаалдаггүй, улмаар батерейны цэнэгийг хэмнэдэг) Хэрэв програм санах ойг үргэлжлүүлэн ашиглах юм бол танд ийм зүйл байгаа гэж бодож магадгүй юм. гар аргаар устгахын тулд үүнийг суллах . Гэхдээ үүнийг хийх шаардлагагүй, учир нь iOS үүнийг хийх болно. Хэрэв танд их хэмжээний RAM ашигладаг тоглоом гэх мэт эрэлт хэрэгцээтэй аппликешныг ард түдгэлзүүлсэн бол шаардлагатай үед iOS үүнийг санах ойноос автоматаар устгах бөгөөд та програмын дүрс дээр дарж дахин эхлүүлэх боломжтой.
Эдгээр төлөвүүдийн аль нь ч олон талт талбарт тусгагдаагүй бөгөөд уг самбар нь програм зогссон, түр зогсоосон эсвэл ард ажиллаж байгаа эсэхээс үл хамааран саяхан эхлүүлсэн програмуудын жагсаалтыг харуулдаг. Одоо ажиллаж байгаа программ нь Multitasking самбар дээр харагдахгүй байгааг та анзаарсан байх
Суурь даалгавар
Ер нь та Home товчийг дарахад програм нь далд ажиллах бөгөөд хэрэв та үүнийг ашиглаагүй бол таван секундын дотор автоматаар зогсдог. Жишээлбэл, хэрэв та подкаст татаж байгаа бол систем үүнийг ажиллаж байгаа програм гэж үнэлж, дуусгахыг арван минутаар хойшлуулдаг. Хамгийн багадаа арван минутын дараа процесс санах ойноос чөлөөлөгдөнө. Товчхондоо, хэрэв та үүнийг дуусгахад 10 минутаас илүү хугацаа шаардагдахгүй бол Home товчийг дарж татан авалтаа тасалдуулах вий гэж санаа зовох хэрэггүй болно.
Ар талд нь тодорхойгүй гүйлт
Идэвхгүй болсон тохиолдолд систем таван секундын дотор програмыг зогсоож, татаж авсан тохиолдолд арван минутын турш дуусгавар болно. Гэсэн хэдий ч цаана нь ажиллах шаардлагатай цөөн тооны програмууд байдаг. iOS 5 дээр тодорхойгүй хугацаагаар далд ажиллах боломжтой програмуудын жишээг энд үзүүлэв.
- Дуу тоглуулдаг, хэсэг хугацаанд тасалдсан байх ёстой програмууд (утасны дуудлагын үеэр хөгжим түр зогсоох гэх мэт),
- Таны байршлыг хянах програмууд (навигацийн програм хангамж),
- VoIP дуудлага хүлээн авах програмууд, жишээлбэл, хэрэв та Skype ашигладаг бол програм нь ард байсан ч дуудлага хүлээн авах боломжтой.
- Автомат татаж авах (жишээ нь, Newsstand).
Даалгавраа гүйцэтгэхээ больсон тохиолдолд бүх програмыг хаах хэрэгтэй (жишээ нь, далд татан авалт гэх мэт). Гэсэн хэдий ч үндсэн Mail програм гэх мэт арын дэвсгэр дээр тасралтгүй ажилладаг үл хамаарах зүйлүүд байдаг. Хэрэв тэд далд ажиллаж байгаа бол санах ой, CPU-ийн ашиглалтыг эзэлдэг эсвэл батерейны ашиглалтыг бууруулдаг
Цаана нь тодорхойгүй хугацаагаар ажиллахыг зөвшөөрсөн программууд ажиллаж байхдаа хөгжим тоглуулахаас эхлээд шинэ Podcast ангийг татаж авах хүртэл юу ч хийх боломжтой.
Өмнө дурьдсанчлан, хэрэглэгч ард ажиллаж байгаа програмуудыг хаах шаардлагагүй. Үүний цорын ганц үл хамаарах зүйл бол арын дэвсгэр дээр ажиллаж байгаа програм гацах эсвэл нойрноосоо зөв сэрэхгүй байх явдал юм. Дараа нь хэрэглэгч програмуудыг олон үйлдэлт мөрөнд гараар хааж болох боловч энэ нь ховор тохиолддог.
Тиймээс ерөнхийдөө арын процессуудыг удирдах шаардлагагүй, учир нь систем өөрөө тэдгээрийг хариуцах болно. Тиймээс 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 (Samsung Omnia W for 6200,-)-аар сольсон бөгөөд системийн хурд огт өөр түвшинд байна.
Windows 8 Metro таблетууд гараад ирэхээр iPad-аа ч солино гэж айж байна...
@007 – тийм ээ, хэрэв та хуучин iPhone3G-г шинэ WP-тэй харьцуулж байгаа бол тийм (хэн үүнийг хүлээж байсан бэ?) WP нь арай хурдан байх болно. Үгүй бол Карлулкагийн тухай хов жив танд тохирохгүй байгаа тул одоогийн HW-ийг харьцуулах нь зүйтэй болов. Би бас WP7-г худалдаж аваад эцэст нь 4-тэй болсон нь WP7-ээс тэс өөр түвшний хэрэглээг илэрхийлдэг. Тиймээс аятайхан өнгөрч, хавтангуудаар эцэс төгсгөлгүй гүйлгэ.
Би Пажатай бүрэн санал нийлж байна
Би өөр нэг торхны хог хаягдлаас дахин хувь нэмэр оруулах болно - Samsung Galaxy S болон iPhone 4 - Насны хувьд харьцуулах боломжтой гэж хэлэх үү? IOS 4-ийн үед, мөн Android-аас өөр газар ашиглах боломжтой, хурдны хувьд Apple-д программуудтай ажиллах маш сайн ойлголт байсан боловч Android-д мөн адил тийм байхаа больсон. Эцэст нь би 4S-тэй болсон бөгөөд надад ямар ч гомдол байхгүй, учир нь "энэ нь зүгээр л ажилладаг" .. бөгөөд энэ нь маш хурдан ажилладаг!
Онол нь гоё... Гэхдээ практик дээр бааранд програмаа хаадаг хэвээрээ л байна ;)
Баярлалаа, маш сонирхолтой, прагматик, сонирхолтой, энэ нь дүүжин, гүн гүнзгий дутмаг биш юм. Өнөөгийн залуучууд энэ хориотой брэндэд хэт автдагийг онцлон тэмдэглэж байна! Гэхдээ түүнд болон энэ нийтлэлд баярлалаа.
Нийтлэл бүрэн буруу байна.
Алдаатай хэлсэнчлэн Нүүр товчийг дарахад програм зогсдоггүй, харин түр зогсдог. өөрөөр хэлбэл санах ойгоос бүү устга, бүү орхи. Зүгээр л гүйлтийг түр зогсоовол iOS энэ апп-д CPU-ийн цагийг 0% өгнө. Энэ нь нийтлэлд дурдсанчлан iDevice санах ойн хаана ч "солилцдоггүй" нь гарцаагүй. Энэ нь програмыг солих боломжийг ашиглах боломжтой болсонд үнэхээр талархаж байна.
Утсанд илүү чухал ач холбогдолтой бусад програмуудыг ажиллуулахад бага санах ой байгаа үед програмыг санах ойноос хасдаг (ихэвчлэн өөр програм урд талд ажиллаж байна).
Эхний тохиолдолд таны зөв, орчуулгын алдаа байсан. Солилцооны хувьд бид энд энэ тухай яриагүй, харин iOS төхөөрөмж дээрх санах ойн тухай биш харин үйлдлийн санах ойн тухай ярьж байна.
Програмын дүрс нь тушаалаар дахин дуудагдах хүртэл хязгаарлагдмал хугацаанд санах ойд хадгалагдана (13,7 ГБ-аас 16 ГБ-ыг үзнэ үү: 2,3 ГБ нь систем болон түр зогсоосон програмуудад зориулагдсан)
Тиймээс Navigation, Skype гэх мэт програмуудыг хооронд нь ялгах шаардлагатай бөгөөд эдгээр програмууд нь арын дэвсгэр дээр ч идэвхтэй хэвээр байх эсвэл тодорхой функц дуусдаггүй бөгөөд жишээлбэл, байршил, байршлын талаархи мэдээллийг илгээх болно. Эсвэл порд горимд байгаа Vokul шиг сонсох ба олон үйлдэл нь ард сонссон хэвээр байна.
Эдгээр програмууд нь батарейг шавхдаг бөгөөд тэдгээрийг гараар хааж, iOS-ийг хүлээх хэрэггүй. бусад тохиолдолд энэ нь шаардлагагүй, зөвхөн програм эвдэрсэн тохиолдолд л байдаг.
Би нийтлэлтэй санал нийлэхгүй байна. Мин. 1-р үеийн iPad (iOS 5.0.1) дээр надад олон үйлдэл хийх талбарт олон "нээлттэй" програм байгаа эсэх, эсвэл цөөн хэдэн програм байгаа эсэхийг харах нь ойлгомжтой. iOS нь санах ойг цэвэрлэхийг оролддог боловч энэ нь хангалтгүй юм - RAM-ийн жижиг хэмжээ нь түүний хамгийн том сул тал байж магадгүй юм.
Систем болон ашигласан техник хангамжаас их зүйл шалтгаалдаг тул iOS 1-тэй iPad 5.0.1-д 2-р үеийн iPad-аас илүү муу байх нь логик юм.
Уучлаарай анд минь, энэ бол ажиллах ёстой IDEAL аргачлалын тайлбар юм. Харамсалтай нь бодит байдал огт өөр бөгөөд хэрэв та Apple-ийн бүтээгдэхүүнийг ядаж над шиг (өөрөөр хэлбэл хааяа) ашигладаг бол үүнийг мэдэх болно.
"IOS үйлдлийн систем дээр далд ажиллаж байгаа програмууд үйлдлийн санах ойг дүүргэдэг гэсэн мухар сүсгийг та байнга сонсож болно."
Энэ бол мухар сүсэг биш, зүгээр л баримт. Эцсийн эцэст та үүнийг нийтлэлдээ өөрөө баталж байна.
"Өмнө нь дурьдсанчлан хэрэглэгч ард ажиллаж байгаа програмуудыг хаах шаардлагагүй."
ДЭМЭГЭЭ. Энэ бол зүгээр л тэнэглэл, алимны суртал ухуулга, надад битгий уурлаарай.
"Гэхдээ үүнийг хийх шаардлагагүй, учир нь iOS үүнийг таны өмнөөс хийх болно. Хэрэв танд их хэмжээний RAM ашигладаг тоглоом гэх мэт эрэлт хэрэгцээтэй аппликешныг ард түдгэлзүүлсэн бол iOS нь шаардлагатай үед санах ойноос автоматаар устгах бөгөөд та програмын дүрс дээр дарж дахин эхлүүлэх боломжтой."
Худлаа. Нөхцөл байдал арай өөр байна. Ердийн жишээ - Надад шаардлагатай програмууд цаана нь ажиллаж байна, надад тоглоом хэрэгтэй байна. Би хөтчөө ажиллуулж, хэд хэдэн таб нээгээд -> илүү санах ой хэрэгтэй. Юу тохиолдох вэ? Цаана нь программ шаардсаар л байдаг, харин эсрэгээрээ ХӨТӨЧ ӨӨРӨӨ унадаг. Хэрэв би шаардлагатай програмуудыг гараар хаавал хөтөч нь ямар ч асуудалгүйгээр удаан хугацаанд ажилладаг.
Энэ бол онол биш практик юм. Та Apple-ийн бүтээгдэхүүнийг удаан хугацааны турш ашигладаг хүний хувьд үүнийг мэдэхгүй хэвээр байгаад би гайхаж байна.
Баярлалаа, үүнийг маш сайн тайлбарлаж, тайлбарласан болно. Та надад маш их тусалсан ;-) ♥
Танилцуулбал, би Android-тэй адил iOS-ийн эсрэг ч биш, гэхдээ энд бичсэнчлэн "та iOS үйлдлийн системтэй программ гацах тохиолдол ховор тохиолддог" гэсэн хэд хэдэн хачирхалтай зүйл байна. Програмууд жилд нэг удаа гацдаг байх: -П
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 нь үүнийг хийх боломжтой' маш сайн ажилладаг). Надад RAM бага, ердөө 8 ГБ байдаг, гэхдээ 7 ГБ-тай Windows 8-д систем удаан хариу үйлдэл үзүүлэхгүй эсвэл солигддоггүй, OS X-д энэ нь нэлээд түгээмэл үзэгдэл юм (би хэзээ ч компьютерээ унтраагаагүй, би үүнийг Mac дээр ч хийдэг, Тиймээс нэг сар ба түүнээс дээш хугацаа нь үл хамаарах зүйл биш, асуудал бол RAM-г суллах, "хурдасгах" зорилгоор заримдаа Mac-ыг дахин асаах шаардлагатай болдог, Windows 7-д үүнийг хийх шаардлагагүй).
Би програмыг хэрхэн яаж тэслэхийг илүү их сонирхож байна. Надад тохиолдсон зүйл бол уг программ (ялангуяа Geocaching дээр) эх серверээс ямар нэг зүйлийг ачаалж байх төлөвт орж, энэ төлөвт гацсан. Нүүр хуудас товчлуур ажиллаж, дахин ачаалсны дараа хөлдсөн төлөв рүү буцсан (миний орхисон газар). Гараар гарах (олон амталгааны цэс рүү, хаахын тулд хасах товчийг дарна уу) = програм алга болсон бөгөөд дахин эхлүүлсний дараа анхны төлөв байдалдаа нээсэн бөгөөд энэ нь царцсан байна. Тиймээс би бүх зүйлийг хааж, утсаа унтрааж, асааж, HOME дээр давхар товшоод харагтун - програмууд унтрахынхаа өмнөхөн хаагдахаас өмнөх шигээ байсан. Дахин эхлүүлэх нь бас тус болсонгүй - халуун болох хүртэл гэртээ болон дээд хэсгийг барина. Тусалсан цорын ганц зүйл бол програмыг утаснаас устгаж, дахин эхлүүлж, утсан дээрээ дахин суулгах явдал байв. Яагаад ч юм би хүлээж аваагүй.
Энэхүү Multitasking менежмент нь ажилладаг бөгөөд эдгээр нөхцөл байдлыг даван туулах нь хөгжүүлэгчидээс хамаарна. Бүх нөхцөл байдлын талаар илүү нарийвчилсан, мэргэжлийн тайлбарыг сонирхож буй хүмүүст би энд хэрхэн байгааг бичих болно.
Энэхүү програм нь нийт 6 мужид хариу өгөх боломжтой бөгөөд эдгээр мужууд нь:
applicationWillResignActive
applicationDidEnterBackground
applicationWillEnterForeground
applicationDidBecomeActive
програм дуусгавар болно
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 сервер дээр онлайн хэвээр байх бөгөөд хэн нэгэн танд бичвэл түлхэх мэдэгдэл хүлээн авах болно. Аппликешныг дахин нээсний дараа холболт хормын дотор тогтож, та баяртайгаар чатлах боломжтой.
Тиймээс, хэрэв би таны холбосон нийтлэлийг зөв ойлгосон бол статистик тоо баримтууд нь зөвхөн програмын эвдрэлийг эхлүүлэх үед л хэлдэг бөгөөд энэ нь осол гарч болзошгүй тохиолдлын нэлээд бага хувь юм. Тиймээс энэ "судалгаа"-аас миний бодлоор iOS тогтворгүй гэж дүгнэх боломжгүй юм. Цаашилбал, Forbes-ээс авсан нийтлэлийн орчуулагч нь програмын эвдрэлийн талаархи мэдээллийг өгдөг компани нь бусад Google-ийн дэмжлэгтэй гэдгийг дурдахаа мартсан байна ("Crittercism, Google Ventures дэмждэг,...").