|
אך ישנם מקרים שנרצה לפתח אפליקציות עבור מחשבי כף-יד ישנים מסיבות שונות. אומנם רוב המכשירים שיוצאים היום לשוק תומכים בפלטפורמת Windows Mobile 2003, ושאר המכשירים המצויים בידי הציבור תומכים בפלטפורמת Pocket PC 2002, אבל עדיין מסתובבים מחשבי כף-יד מהדור הישן מאד כמו הקסיופיאה למשל.
בכתבה זו אני אתאר בקצרה את התנאים הנדרשים לצורך פיתוח עבור המכשירים הישנים והחדשים גם יחד.
פיתוח אפליקציה שתעבוד על כל המכשירים אינו פשוט כלל. הגירסה האחרונה של eMbedded Visual C++ 4.0 תעבוד באופן עקרוני רק מול הפלטפורמה האחרונה שיצאה לשוק - WM2003.
אם תרצו לפתח עבור מכשירים מהדור הקודם יש להשתמש ב-eMbedded Visual C++ 3.0. בעזרתה, כמו שאני אסביר בהמשך, ניתן לפתח אפליקציה עבור כל סוגי המכשירים הישנים.
במקביל - eMbedded Visual Basic 3.0 תעבוד גם היא מול כל סוגי המכשירים הישנים ואף קיימת תמיכה לאפליקציות שפותחו בה גם בפלטפורמה החדישה ביותר WM2003.
שתי בעיות קיימות בפיתוח עם eVB 3.0. הראשונה היא שאפליקציות שפותחו בה זקוקות למנוע מיוחד שמותקן על הפוקט ואחראי על ההרצה שלהן - מכיוון שאלו אינם קבצי הפעלה סטנדרטים עם סיומת exe אלא עם סיומת vb, היעילות שלהם מבחינת ביצועים נחותה בהרבה משאר סביבות הפיתוח שיתוארו בכתבה הזו. הבעיה השניה היא שבפלטפורמה האחרונה WM2003 קבצי ה-Runtime שצריכים להריץ את האפליקציה כלל אינם קיימים ועל המשתמש להוריד ולהתקין אותם בכוחות עצמו, מה שמסרבל את העניין.
באופן כללי מיקרוסופט מתנערת מ-eVB ב-WM2003 מהסיבה הפשוטה שהיא מנסה לדרבן את המפתחים ב-eVB לעבור לסביבת NET CF. בשפת VB.NET.
כדי להשתמש בגירסה 3.0 של eVB או eVC יש להוריד את סביבת הפיתוח eMbedded Visual Tools 3.0 או eVT 3.0.
לסיכום מה שנאמר עד כה, אפשרות ראשונה לפתח עבור כל המכשירים הקיימים היא באמצעות eVB 3.0. קחו בחשבון כי בכדי שתוכלו לפתח עבור מכשירים מאד ישנים, יש להוריד את ה-SDK המתאים מאתר מיקרוסופט שכן לא כל חבילות ה-SDK כלולות ב-eVT 3.0.
במקביל, אם תרצו לפתח ב-++eVC אפליקציה שתעבוד על כל המכשירים יש להעביר את הקוד קומפילציה דרך eVC 4.0 עבור WM2003 וב- eVC 3.0 עבור כל המכשירים שיצאו עבור PPC2002 ומטה. יש להוריד את ה-SDK המתאים עבור המכשירים הישנים יותר מאתר מיקרוסופט.
SDK או Software Development Kit זוהי חבילת פקודות והנחיות שמכילה קוד ספציפי לממשק מסויים, או במקרה שלנו לפלטפורמה מסויימת הפועלת על מעבד ספציפי.
מייד אני אפרט מהן הפלטורמות וכיצד להשיג עבורן את ה-SDK המתאים.
WM2003 - אין צורך ב-SDK - מגיע עם eVC 4.0 PPC2002 - אין צורך ב-SDK - מגיע עם eVT 3.0 (שכוללת את eVB ו- eVC)
את חבילות ה-SDK הבאות ניתן להוריד מאתר מיקרוסופט:
Handheld PC Professional 3.0 או H/PC Pro 3.0.
Handheld PC 2.0 או H/PC 2.0.
Handheld PC 2000 או H/PC 2000.
Palm-size PC 1.2.
חשוב שתתקינו את ה-SDK אחרי שהותקנה סביבת הפיתוח ולא לפני.
אפשרות נוספת לתמיכה במכשירים ישנים היא הפיתוח בעזרת טכנולוגיית NET.
זו החדשה מכולם ובשל היותה כזאת אין אפשרות קיימת לפתח בעזרתה אפליקציות עבור מכשירים מדור קודם ל-Pocket PC 2002.
כדי שאפליקציה שנכתבה ב-.NET תעבוד על מחשב כף-יד, חובה שתהיה מותקנת עליו ארכיטקטורת NET Compact Framework. הארכיטקטורה הזו מגיעה באופן אוטומטי על כל הפלטפורמות מבוססות Windows CE 4.0 שנקראת גם Windows CE .NET.
כדי להשתמש באפליקציה כזו על פלטפורמת PPC2002 שמבוססת על Windows CE 3.0, המשתמש יכול להוריד את הארכיטקטורה מאתר מיקרוסופט וכך להריץ את כל האפליקציות שנכתבו עבורה - מבלי שהקוד יצטרך לעבור תהליך קומפילציה מחדש.
המשמעות לכך היא שאפליקציה כזו תעבוד על כל מחשב כף-יד שעליו מותקנת NET CF. המכשירים הנכללים בהגדרה זו מבוססים על WM2003 או על PPC2002 אך לא על מכשירים ישנים יותר (נכון להיום).
אז מה האפשרות המומלצת? - אין כזאת. את השיקולים לפתח אפליקציה למכשירים ישנים תעשו על-פי ההנחיות שתיארתי כאן. אין נוסחת פלא וכדי לתמוך בכל המכשירים הישנים באופן מלא יהיה עליכם להתקין את כל סוגי ה-SDK ולפתח ב-eVC 3.0 ו 4.0 במקביל. זה לא עניין פשוט ולא כל אחד מעוניין לפתח ב-eVC אבל זוהי האפשרות האידיאלית מבחינת התמיכה לאחור. אני לא יכול להמליץ על eVB גם מכיוון שמיקרוסופט הפסיקו את התמיכה בה במכשירים חדישים וגם מכיוון שהקוד המפותח בה אינה יעיל מבחינת זמן-ריצה.
ישנן סביבות נוספות לפיתוח שלא מגיעות ממיקרוסופט אלא מבתי תוכנה חיצוניים כמו למשל Java. בעקרון אם יותקן מנוע מתאים לפענוח אפליקציה שנכתבה ב-Java היא תעבוד על כל סוגי המכשירים, ממש כמו NET CF. גם ב-Java וגם בסביבות חיצוניות אחרות ישנה תמיכה מוגבלת בתאימות לאחור והנושאים הללו הינם מחוץ להקף הכתבה.
נקודה נוספת שכדאי להכיר: CEF או Common Executable Format. זוהי שיטת קומפילציה מיוחדת שהופכת את הקוד לקובץ בינארי תואם-פלטפורמה אך אינו מכיל קוד בשפת-מכונה. המשמעות לכך היא שהקוד אינו תלוי בסוג המעבד. הקובץ שנוצר הוא מעט יותר גדול וזמן-הריצה שלו קצת יותר איטי ובאופן כללי, על מחשב כף-היד צריך לשבת רכיב שיתרגם את הקוד בזמן-ריצה לשפת-מכונה. העניין הזה היה אקטואלי בעבר כאשר היו מכשירים שונים בעלי סוג מעבד אחר ורצו להמנע מהפצה של קבצי exe עבור כל סוג מעבד (SH3/MIPS/ARM). גם נושא זה הינו מחוץ להקף הכתבה.
קבלו את ההחלטה וזכרו כי אין היום הרבה אנשים שמחזיקים מכשיר תואם פלטפורמה ישנה מ-Pocket PC 2002.
להמשך קריאה לגבי התפתחות מערכת ההפעלה Windows CE הכנסו לכאן.
מקווה שנהנתם, שאלות והערות יתקבלו בברכה.
להמשך דיון אנא הכנסו לפורום המפתחים.
אמיר ולדמן (BlastPPC) פורום המפתחים פוקט פיסי פריק
|