Java Micro Edition
מראה
ב [[Java] מורצת התוכנה על מכונה וירטואלית. תכונה זו של ניתוק ממערכת ההפעלה ע"י כתיבת JVM שהיא מיני מערכת הפעלה סטנדרטית אומץ לתחום אחר והוא הטלפונים החכמים כחלק מקבוצה של EMBEDED DEVICES. גם שם ריבוי המכשירים, ריבוי מערכות ההפעלה, וסוגי מעבדים שונים נתנו יתרון לפיתוח מבוסס מכונה וירטואלית תחום זה הוא J2ME -MOBILE EDITION JAVA 2.
בתחום זה הוגדרו מספר וריאציות:
גם כאן הכלל "כתוב פעם הרץ בכל מקום" עוזר למפתחים. אך עדיין גם פה פרמטרים כמו: גודל מסך, מספר צבעים,תמיכה במצביע ועדכון מסך חכם, הם פרמטרים שהמתכנת צריך להתייחס אליהם.
הואיל וJAVA רצה על מכונה וירטואלית ולכן מתאימה לטלפוניה. כך ניתן לכתוב קוד משחק JAVA פעם אחת והוא יצליח לרוץ על מגוון רב של סוגי טלפונים ששונים הן במערכת ההפעלה, במעבד או במסך.
שני הסוגים העיקרים ב-J2ME הםMIDP וPERSONAL JAVA. כאשר נבנתה גם וריאציה מורחבת לMIDP לPDA . ביפן פותחה גרסה אחרת שנקראת IAPP ועליה בהמשך.
כדי לפשט את התאמת וכתיבת המכונה הוירטואלית לטלפונים ומערכות קטנות חולקה המכונה הוירטואלית ( (JVM לשתי שכבות:
ה-CDC היינו התשתית למערכות שהן יחסית עתירות משאבים ומשמעותו CONNECTED DEVICE CONFIGURATION כגון PDA וחלק מה- SMART PHONES וה CLDC מיועד למערכות מוגבלות משאבים: LIMITED L= כגון טלפונים שהם לרוב מוגבלי זיכרון ומהירות הCPU.
ה MIDP הוא הגרסה שרצה ב-90% מהטלפונים /PDA תומכי JAVA – היתר מתחלקים בין PERSONAL JAVA לבין IAPP. עכשיו החדירה של טלפונים תומכי JAVA היא 25% וההערכה היא שעד 2006 כל הטלפונים יתמכו בJAVA .
ה-MIDP רוכב מעל הרמה הבסיסית - CLDC, שהיא השכבה המוגבלת, ובהתאם מכילה תת מרחב של ממשק הAPI- הסטנדרטי. למשל לא קיים טיפול במספרים ממשיים ובפונקציות מתמטיות וגם ממשק האפליקציה מנוון ומבוסס על ספריה אחרת ומצומצמת.
מצד שני PERSONAL JAVA (וגם-JAVA TV ) רוכב מעל שכבה CDC ובהתאם תומכים בממשק מורחב יותר, הדומה יותר לממשק הסטנדרטי, למשל PERSONAL JAVA מכיל AWT, שהוא אותו ממשק מסכים שנמצא גם בAPPLET הרץ על דפדפן EXPLORER.
יש טלפונים חכמים POKET PC או P800 של SONY ERICCSON שמריצים את שתי הגרסאות.
כדי לעזור לחברות יצרני הטלפונים באדפטציה של JAVA נכתבו דוגמאות מימוש כבסיס. בנוסף יש קבוצה בSUN שמספקת שירותי מימוש JAVA לטלפונים וכתיבת סביבת פיתוח כמו אמולטורים (מדמי טלפון בתוכנה), שחלק ניכר מהם מפותח בקבוצה בישראל. בניגוד לרוב השפות הקיימות על שפת JAVA יש זכויות יוצרים. הרווחים של SUN הם בין היתר מזכויות יוצרים על שימוש ב-JAVA, למשל על כל טלפון נייד תומך JAVA, אפילו אם לא השתמשו במימוש של SUN.
האפליקציה של MIDP נקראת MIDLET על שם הממשק של התוכנית הראשית (שהוא כמו ה – MAIN של C או JAVA ולמעשה הוא ה CLASS הבסיסי ל MAIN של תוכנת טלפונים). הממשק הנ"ל תומך בפונקציות העיריות הבאות:
האם עקרון " כתוב פעם אחת הרץ בכל מקום" עובד תמיד – לא בדיוק! בגלל גודל מסך, מספר צבעים ולחצנים שונים התנהגות התוכנה לא תמיד זהה בכל טלפון. הרבה פעמים במקום לכתוב קוד המטפל בשינויים בין המכשירים (ומגדיל את גודל ה-MIDLET) יוצרים גרסאות המותאמות לסוגים השונים. תפקיד הפורטל (שהינו או תפריטי WAP או אתר הורדות) להתאים את הגרסה הנכונה לטלפון. זה נעשה לדוגמא על ידי רישום של המספר וסוג הטלפון וזיהוי על פי מספר טלפון. (לרוב בצורה הנכונה בכל העולם, לדוגמא +97254XXXXXX)
במקביל להתפתחות של הטלפונים באירופה ובארה"ב על ידי נוקיה, מוטורולה וסימנס התפתחה ביפן תרבות משחקי טלפון שגרמה להיווצרות דיאלקט JAVA משלהם שנקרא IAPP. בניגוד לMIDP היא הותאמה למשחקים וDoCoMo היינו המפעיל המפורסם מכולם. משחק כמו עולם וירטואלי של סמוראים הוא דוגמא לרמת התפתחות תרבות המשחק בטלפונים שם.
בהמשך לדרישה של תמיכה חזקה יותר באפליקציות בידוריות ובמשחקים יצאו שלושה סטים של הגדרות ממשקים: