לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 04-12-2004, 09:34
צלמית המשתמש של fat fish
  fat fish fat fish אינו מחובר  
 
חבר מתאריך: 20.06.03
הודעות: 5,616
מדריך Java 2 Micro Edition - תיכנות לפלאפון!!

מאמר מאת Gh0sT_d0g
המאמר הועבר מארכיון המערכת הישנה של פרש.

הקדמה
JAVA היא שפת תיכנות די פופולארית, התכונות הבולטות בה הן התיכנות המונחה האובייקטים הטהור שבה וגם הפורטיביליות שלה. אופן הפעולה של התכניות בJAVA מאפשר לנו לבנות תכנית בכל מקום ולהריץ אותה בכל מקום מבלי בעיות תמיכה. בגלל זה קל לכתוב תכניות בג'אווה לכל פלטפורמה כמו יוניקס, PC וגם מכשירים קטנים כמו פלאפונים למשל!
Java 2 Micro Edition זו טכנולוגיה אשר מאפשרת כתיבת תוכניות ב JAVA למכשירים קטנים, כמו פלאפון למשל! ובמטרה זו נתמקד במדריך זה.
הבהרה : במדריך שלי אני מדגים איך לבנות תכנית לפלאפון מסוג נוקיה 3510. אני מציין כאן אמולטור מתאים וגם הדברים שבניתי לא נבדקו על סוגים שונים של מכשירים. אך העיקרון דומה וניתן למצוא גם אמולטורים למכשירים אחרים כדי שתהיה תאימות מקסימלית בין התוכנה שאתם כותבים לבין המכשיר שלכם. מצרכים
ידע ב JAVA
אין צורך להסביר. התכניות שאנחנו נכתוב יהיו בשפה JAVA

Java Wireless Toolkit
מדובר בכלי שאיתו ניעזר לשלבים הסופיים של התכניות שלנו. מדובר בכלים אשר יקמפלו את התכניות שלנו ויעשו לנו את קבצי הJAR המפורסמים שאותם אנחנו מורידים לפלאפון שלנו.
ניתן להשיג כאן (יש להירשם קודם) :
http://sdlcweb2c.sun.com/ECom/EComActionServlet?StoreId=22&PartDetailId=J2MEWTK-2.1-G-F&SiteId=JSC&TransactionId=try&LMLoadBalanced=

Websphere Device Developer 5.6
רק בגדר המלצה. זוהי סביבת פיתוח בג'אווה למכשירים (כמו פלאפון!). מי שמכיר את הסביבה eclipse אז זה בעצם אותו הדבר. מאוד נוחה לשימוש. מומלץ ביותר! חיסרון בולט של התוכנה הוא שהיא כבדה, דורשת זיכרון רב, וייתכן שעל מחשב חלש תרוץ באופן לא חלק. כמובן שלא חייב אותה ואפשר לכתוב גם בnotepad או בתוכנות אחרות כמו JBuilder (+ תוסף מיוחד שנקרא MobileSet)
את הסביבה ניתן להוריד מכאן:
http://www-106.ibm.com/developerworks/subscription/descfiles/components/wsdd56wx.htm

Nokia 3510 emulator (או כל אמולטור אחר)
זהו אמולטור למכשיר נוקיה 3510. בעזרתו אנחנו נוכל לבדוק אם מה שבנינו אכן עובד כמו שאנחנו מצפים. ניתן להשיג אמולטורים למכשיר זה ולמכשירי נוקיה אחרים באתר http://forum.nokia.com. לגבי מכשירים אחרים מנוקיה אין לי מושג, אבל אני משער שבאתרים של החברה שלהן יש אפשרות להשיג מידע על מיקום אמולטורים כאלה)

הערות לפני התקנת התכניות הדרושות
* אין להתקין את התוכנות בספריות או תחת ספריות אשר השם שלהן מכיל רווחים! חשוב מאוד! למה אחר כך יש בעיות בקימפול והרצה עם האמולטור.. אז עדיף שתדעו מראש את הדבר.
* עוד דבר הוא להתקין את האמולטור בתוך ספריית ה Java Wireless Toolkit\Devices, העניין מומלץ כי הוא מאפשר הגדרת האמולטור הזה בתור האמולטור הדיפולטי של KToolbar (ראה בהמשך) וכך נוכל להריץ משם תכניות אשר נבנה. הדבר לא הכרחי אך מומלץ.

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

נפעיל את סביבת העבודה שלנו ונתחיל לכתוב את התכנית הראשונה שלנו:


import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;


public class GhostDog extends MIDlet implements CommandListener
{
// Initialize the Midlet Display variable
private Display midletDisplay;


// Initialize a variable for the doneCommand
private Command doneCommand;


public GhostDog ()
{
// Retrieve the display from the static display object
midletDisplay = Display.getDisplay(this);


// Initialize the doneCommand
doneCommand = new Command("DONE", Command.SCREEN, 1);
}
public void startApp()
{
// Create the TextBox containing the "Gh0sT d0g" message
TextBox textBox = new TextBox ("dogg", "Gh0sT d0g", 256, 0);


// Add the done Command to the TextBox
textBox.addCommand(doneCommand);


// Set the command listener for the textbox to the current midlet
textBox.setCommandListener( (CommandListener) this);


// Set the current display of the midlet to the textBox screen
midletDisplay.setCurrent(textBox);
}
public void pauseApp()
{
}
public void destroyApp(boolean unconditional)
{
}
public void commandAction(Command command, Displayable screen)
{
// If the command is the doneCommand
if (command == doneCommand)
{
// Call the destroyApp method
destroyApp(false);


// Notify the midlet platform that the midlet has completed
notifyDestroyed();
}
}
}



דברים שחשובים לכל תכנית
* את שני ה import-ים הראשונים אנחנו חייבים לעשות כדי שנוכל לעבוד עם אובייקטים שמתאימים לפלאפון.
* את המחלקה הראשית שלנו אנחנו נירש (extend) מהמחלקה MIDlet, מה שגם יוצר לנו את הפונקציות startApp, pauseApp, destroyApp אשר אלו בעצם פונקציות שמתארות מצבים אפשריים בפלאפון שלנו (אני חושב שלפי השם אפשר להבין באילו מצבים מדובר)
* לא חשוב אבל די הכרחי בכל תכנית: לממש (implements) את CommandListener, מה שנותן לנו אפשרות לקבל אירועים מהמשתמש (לחיצה על כפתור יציאה למשל) ולטפל בהן באופן הרצוי לנו.

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



<Java Wireless Toolkit dir>\docs\api\midp\index.doc
מה שהתכנית הזאת עושה בעצם זה להציג למסך את הטקסט Gh0sT d0g

כדי לבנות תכנית יותר גדולה אנחנו כבר נשתמש בForm-ים אשר עליהם תוכלו לקרוא קצת בAPI.

עכשיו, יש לנו תכנית מוכנה, אבל מה לעזאזל אני עושה כדי שהדבר הזה יפעל בפלאפון שלי?!?!
אז הנה תרשים המתאר מהלך של תכנית עד שהיא מגיעה לפלאפון:


[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://planet.nana.co.il/gdog/j2me/1.jpg]


אז עכשיו אתם חושבים לעצמכם: "מה, אני יצטרך להריץ קומפילציה ואז קדם-אימות ואז לכווץ לJAR, אין לי כוח! אני פשוט יקווה שמישהו יבנה את התכנית הזאת ויפרסם אותה.."
אז אני אומר לכם � אל דאגה! כאן נכנסת לתפקיד הערכה החביבה שלנו Java Wireless Toolkit.
בעזרת ערכה זו אנחנו מריצים לתכנית שלנו קימפול, קדם-אימות ואריזה לקובץ JAR � והכל בלחיצת כפתור אחת!! רוצים לדעת איך?

שלבים בקימפול תכנית בJAVA
נפתח את הKToolbar (אחד הכלים של Java Wireless Toolkit) ונפתח פרוייקט חדש אשר שם הפרוייקט זהו שם לבחירתכם (שיהיה נוח לזהות אותו) ושם הclass זהו שם המחלקה אשר יצרנו קודם (GhostDog)


[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://planet.nana.co.il/gdog/j2me/2.jpg]


ולאחר שנאשר את חלון זה נגיע לחלון הבא


[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://planet.nana.co.il/gdog/j2me/3.jpg]


כאשר כאן אנחנו נבחר ב MIDP 1.0 (זוהי הפלטפורמה אשר מתאימה לנוקיה 3510, אם אתם רוצים לדעת איזו פלטפורמה מתאימה לפלאפון שלכם � אתם יכולים לבדוק באתר http://forum.nokia.com)
יש עוד אפשרויות מתקדמות יותר בחלון זה, אבל אנחנו לא ניגע בזה במדריך זה.
לאחר אישור החלון אנחנו נגיע לחלון הראשי של KToolbar.
עכשיו, אנחנו צריכים שקבצי התכנית שלנו יגיעו לספרייה של הפרוייקט שיצרנו בKToolbar. כדי לעשות כך אנחנו נלך לספרייה של הפרוייקט אשר נמצאת ב:



<Java Wireless Toolkit dir> \apps\gdog\src\
ולשם אנחנו נעתיק את הקבצי מקור של התכנית שלנו.
* הקבצים של התכניות של websphere הדיפולטיות נמצאות ב



<Websphere dir>\workspace\<prj name>\src
עכשיו לשלב הסופי. זוכרים שאמרתי כי אנחנו נעשה את כל שלושת השלבים שיש לבצע על התכנית שלנו בלחיצת כפתור אחת? אז הנה היא:


[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://planet.nana.co.il/gdog/j2me/4.jpg]


הדבר ייצור לנו קובץ JAR של הפרוייקט שלנו בספרייה:



<Java Wireless Toolkit dir> \apps\gdog\bin\
סיימנו!
יש לנו קובץ JAR מוכן של התכנית שלנו. עכשיו נותרת השאלה � איך אני מעביר את הקובץ הזה לפלאפון שלי?
אז יש כמה דרכים לראות את התכנית בפעולה:
1. להפעיל את התכנית באמולטור של הנוקיה שלנו.
2. להפעיל את התכנית בפלאפון שלנו � כאשר נעביר את הקובץ ע"י כבל מיוחד אשר מתחבר אליו ורכשנו מבעוד מועד.
3. להפעיל את התכנית בפלאפון שלנו � כאשר נעביר את הקובץ ע"י שימוש בGPRS. נאחסן את הקובץ על שרת חינמי (נענע או גאוסיטיס למשל) ואז ניכנס דרך הפלאפון לכתובת של הקובץ ונוריד אותו למכשיר.

טיפים לתיכנות ב J2ME
טיפ 1 - תיכנות נוח ב Websphere Sudio Device Developer
אם אנחנו רוצים לכתוב תכנית ומדי פעם להריץ כדי לבדוק שמה שעשינו עובד ואין בעיות � אז זה אומר שאני אצטרך לבצע את כל התהליך הזה בשביל בדיקה מסכנה?? אז התשובה היא לא.
אנחנו עכשיו נגדיר את ה nokia emulator שלנו לאמולטור של ה wsdd כך שנוכל להריץ תכניות בכיף ובלי בעיות מיוחדות. ועכשיו, לעבודה:

נכנסים ל Devices -> Configure

ואז בחלון שנפתח אנחנו נגדיר ככה את האמולטור שלנו:

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://planet.nana.co.il/gdog/j2me/5.jpg]


ואז אנחנו נלך ל Run -> Run.. שם נגדיר ככה:


[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://planet.nana.co.il/gdog/j2me/6.jpg]


ואז כאשר אנחנו נריץ או נדבג תכנית אז זה ירוץ על האמולטור שלנו. מאוד שימושי..

טיפ 2 - הוספת מחלקות ספרייה של נוקיה
הפונקציות הסטנדרטיות שמגיעות מ sun הן כלליות מדי ונוקיה רוצה לתת יותר מרחב לפיתוח למכשירים שלה. לכן יש אוסף ספריות שנוקיה שיחררו, אשר מכילות פונקציות נתמכות ע"י המכשירים שלה (כמו למשל פונקציות להפעלת הרטט..). עכשיו השאלה היא מאיפה משיגים דבר כל כך מגניב? אז אני אגיד לכם שכבר יש לכם את זה במחשב!! כאשר התקנתם את האמולטור של הנוקיה אז יש את החבילה הזאת בפנים. עכשיו איך מגדירים ל wsdd לזהות את החבילה הזאת כך שנוכל להשתמש בה? הנה ההסבר:

נכנסים ל Project -> Properties

שם אנחנו נוסיף את המחלקות של נוקיה אשר נמצאות בנתיב הבא:



C:\J2MEWTK21\wtklib\devices\Nokia_3510i_MIDP_SDK_v 1_0\lib

* J2MEWTK21 זהו הספרייה של ה Wireless toolkit
* Nokia_3510i_MIDP_SDK_v1_0 זהו האמולטור שלנו
ע"פ התמונה הבאה:
[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://planet.nana.co.il/gdog/j2me/7.jpg]


ולאחר שנאשר נוכל להשתמש בפונקציות של המחלקה, כפי שניתן לראות:


[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://planet.nana.co.il/gdog/j2me/8.jpg]


הערה : למי שבחר לא להשתמש בתוכנה זו, יכול להגדיר פשוט את המחלקות האלה של נוקיה בCLASSPATH ואז יוכל להשתמש בהן.

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

תודות לavivb שנתן לי חומר התחלתי על נושא זה.
מקווה שמדריך זה תרם לידע שלכם כמו שהוא תרם לי..

בהצלחה!




_____________________________________
[ זיו ]
[ fat fish ]

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 17:34

הדף נוצר ב 0.05 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר