ריבוי משימות: ההבדל בין Multitasking לבין Fast App Switching

מה ההבדל בין ריבוי המשימות ב-iOS 4 והחלפת יישומים מהירה (fast app switching) ומתי מופעל כל אחד?

כל מי שלמד מעט מבוא לפיתוח תוכנה, יודע שהדרך שבה כל יישום (בין אם מופעל על המחשב או על האייפון) מבצע היא בעזרת משהו שנקרא פונקציות או מטודות. למשל, כמה דוגמאות: כשמשחקים במשחק, ולוחץ על כפתור קפיצה – בעצם מופעלת פונקציה שגורמת לדמות על המסך לקפוץ. בעת הפעלת יישום האייפוד, ולחיצה על “נגן” – מופעלת פונקציה שגורמת לניגון השיר או סרט על האייפון.

מה היה עד כה ב-iOS

ברגע שיוצאים מאפליקציה (לוחצים על הכפתור הראשי), מופעלת פונקציה של “לצאת מהאפליקציה”. בחלק מהאפליקציות היא רק יוצאת. בחלק, היא גורמת להפעלה של פונקציה נוספת כמו נגינת מוזיקת יציאה מסויימת או שמירת המצב הנוכחי במשחק או אפליקציה. כלומר, האפליקציה לא מסתיימת באותה שניה, אלא מפעילה את פונקציית “לצאת מהאפליקציה” אשר יכולה לרוץ עוד מספר שניות עד שהתוכנית מסתיימת באמת.

מצד שני, אם באמצע שימוש ביישום זה או אחר מצלצל הטלפון או מקבלת הודעה SMS, מופעלת פונקציית “השהה אפליקציה”. מה קורה אם באמצע משחק, למשל, מתקבלת שיחה, אבל במשחק אין פונקציה שנקראת “השהה אפליקציה”? פשוט מאוד – מופעלת פונקציית “לצאת מהאפליקציה” במקום זאת.

החידוש של iOS 4 – ריבוי משימות

כאשר מדובר בריבוי משימות אמיתי (backgrounder למשל), אין בעיה. האפליקציה ממשיכה לרוץ כמו שהיא ברקע. ב-fast app switching, הסיפור הוא אחר לגמרי: כאשר אנחנו בוחרים לצאת מהאפליקציה, האפליקציה לא ממשיכה לרוץ ברגע כמו שהיא, אלא מתנהגת בצורה דומה למה שהיה קורה כאשר היינו מקבלים שיחה: היא נכנסת למצב של “השהה אפליקציה של iOS4“. תוכנות שלא תומכות עדיין במצב הזה (אין להן פונקציה כזאת) פשוט מפעילות את “לצאת מהאפליקציה” במקום זאת.

תוכנות שכבר כן תומכות במצב זה, מחליטות מה לעשות איתו. מה שמשותף לכולן הוא: הן לא ממשיכות לרוץ. מותר להן לשמור את כל מאפייני היישום, אך אסור להן להמשיך לבצע פעולות כלשהן (לנגן מוזיקה, להשמיע קולות, להזיז דמויות על המסך וכדומה). היתרון בכך הוא שתוכנות שלא רצות כרגע (מושהות ברקע) אינן מנצלות את המעבד (רק את הזיכרון) ולכן חוסכות המון אנרגיה, והמון ביצועים.

אם למשל מופעלים 20 משחקים בbackgrounder, המעבד צריך להתחלק בין 20 פעולות שונות כשכל משחק רוצה לבצע פעולה משלו. כל משחק מקבל רק 1/20 מכוח העיבוד שהוא אמור לקבל, והמעבד כל הזמן עובד ב-100% תפוקה (וצורך סוללה בהתאם).

מצד שני, אם הרצתי 20 משחקים ב-fast app switching, אז רק המשחק הנוכחי שפועל צורך כוח עיבוד, והמעבד עובד רק בשבילו. אז גם המשחק רץ בצורה חלקה, וגם המעבד עובד בניצולת חלקית בלבד, וגם הסוללה מחזיקה יותר זמן (כי המעבד צורך פחות ממנה) בזמן ששאר 19 המשחקים, שגם ככה אינני יכול לשחק בהם בו זמנית, נמצאים במצב מושהה ומחכים שאני אחזור לשחק בהם.

לכן אפל הגדירו את האפליקציות שכן חשוב שהן ירוצו בצורה מלאה ברקע (ניגון מוזיקה, VOIP, ניווט וכו’), ואפליקציות שאין שום צורך שירוצו ברקע (iBook, משחקים, אפליקציות פנאי, וכדומה).

הפוסט פורסם במקור באתר iPhones.co.il

iPhones.co.il

הגב

7 תגובות על "ריבוי משימות: ההבדל בין Multitasking לבין Fast App Switching"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

* היי, אנחנו אוהבים תגובות!
תיקונים, תגובות קוטלות וכמובן תגובות מפרגנות - בכיף.
חופש הביטוי הוא ערך עליון, אבל לא נוכל להשלים עם תגובות שכוללות הסתה, הוצאת דיבה, תגובות שכוללות מידע המפר את תנאי השימוש של Geektime, תגובות שחורגות מהטעם הטוב ותגובות שהן בניגוד לדין. תגובות כאלו יימחקו מייד.

סידור לפי:   חדש | ישן | הכי מדורגים
גיל
Guest

מה הקטע שאתם וiphones.co.il התחלתם לחלוק כתובות?
אני קורא הדוק ואפילו כותב לפעמים לאייפונס אני מאוד אוהב את האתר הזה ולאחרונה התחלתי לקרוא גם כן וזה לא מעט פעמים חופף…

יגאל
Guest
הזכרת Multitasking. לא אמרת שום דבר על זה. אני לא מתכנת לאייפון, אבל ככל שידוע לי Multitasking לא קיימת במערכת הפעלה של האייפון, תקן אותי אם אני טועה (זה לא שהיא לא באמ קיימת, כי אחרת האייפון לא היה יכול לעבוד, אבל לא קיימת ברמת ה-API וזמינה למתכנת). “ריבוי משימות” זה בעצם אומר ששתי אפליקציות רצות בו זמנית על המכשיר, מבלי שום השהייה (sleep mode). אתה יכול לחשוב, fast app switching זה מספיק, כי אין מצב שהשמתמש יוכל להשתמש בתי אפליקציות בו זמנית כי בכל מקרה אין מקום במסך. אבל אני יכול לחשוב על הרבה דרישות פיתוח שיכולות להיות כאשר… Read more »
עומר
Guest

IOS 4 תומכת בריבוי משימות.
לפני היה אפשר להפעיל רק אפלקציה אחת.
הוא דיבר על משהו אחר שבו אין צורך שהאפלקציה תמשיך לרוץ שלא משתמשים בה ולכן מקפיאים אותה.

ודווקא יש מצבים שכן אפשר להשתמש ב-2 אפלקציות בו זמנית כמו ניגון שירים ברקע או 2 אפלקציות שמתקשרות אחת עם השניה(לא יודע אם זה אפשרי).

עומר.

omer
Guest

קיים Multitasking מנוון, כלומר רק משימות ספציפיות המשתמשות במספר שירותים שרצים ברקע. זה אמנם לא Multitasking במובן הקלאסי של המונח, אבל מפתח מוצלח יצור את האשליה שכן (ראיה – עשרות תוכנות שכבר תומכות ב-iOS4: פנדורה, דרופבוקס, waze, טוויטר וכו’).
בעולם המובייל, ריבוי משימות משמעותו קיצור חיי סוללה, ולכן צריך לחשוב על דרכים יצירתיות יותר על מנת לספק את אותה חוויה.

Eli
Guest

שאלה שלא הצלחתי להבין, האם אפלקציות שקשורות לגלישה כמו פייסבוק, דפדפן, תוכנת ניווט וכאלה ממשיכות לגלוש כשהן פתוחות ברקע?

ניצן
Guest

לא.

ירון
Guest

נחמד, אבל התחושה שלי היא שהכתבה הסתיימה באמצע.

wpDiscuz

תגיות לכתבה: