J2me התמחות פלפוניה (תכנות טלפונים ניידים)

Download Report

Transcript J2me התמחות פלפוניה (תכנות טלפונים ניידים)

‫תכנות טלפונים ניידים‬
‫בטכנולוגית ‪Jme‬‬
‫סאמח עבאס‬
‫‪1‬‬
‫מה נראה היום‪:‬‬
‫‪ ‬למה ‪JVM ?JAVA‬‬
‫‪ ‬סקירה והדגמת תכני המגמה‪.‬‬
‫‪ ‬הדגמה של כלי הפיתוח‪.‬‬
‫‪ ‬הצגת פרויקטים‪.‬‬
‫‪2‬‬
‫למה ‪?JAVA‬‬
‫‪3‬‬
‫כל מכשיר היום נעשה חכם יותר ויותר‬
‫ולמעשה מכיל סוג של מחשב בתוכו‬
‫הבעיה‪ :‬בכל מכשיר של כל יצרן צורת‬
‫התכנות שונה ובדרך כלל לא ניתן‬
‫להטעין עדכון לתוכנה שתוסיף למכשיר‬
‫פונקציונאליות‪.‬‬
‫וידאו שניתן לתכנת‪,‬‬
‫מיקרוגל‪ ,‬פלאפון‬
‫כיצד בונים סביבה‬
‫כך שניתן יהיה‬
‫להריץ תכניות על‬
‫סוגים כל כך רבים‬
‫של משאבים‬
‫ומעבדים שונים‬
‫ומשונים?‬
‫פלאפוניה‪ -‬סאמח עבאס © ‪JME- Samih Abbas‬‬
‫למה ‪?JAVA‬‬
‫הצורך‬
‫פלאפוניה‪ -‬סאמח עבאס ‪JME-‬‬
‫© ‪Samih Abbas‬‬
‫‪4‬‬
‫למה ‪?JAVA‬‬
‫( ‪)JVM -Java Virtual Machine‬‬
‫• ה‪ JVM -‬היא תוכנת מחשב ככל תוכנה אחרת‪ ,‬והיא‬
‫משמשת כמעין שכבת‪-‬מיפוי בין מערכת ההפעלה לבין‬
‫תוכניות הרצות על גביה‪.‬‬
‫שכבת‬
‫ביניים‬
‫• היא תוכנה היוצרת סביבה הנחוצה להפעלתה של‬
‫תוכנה אחרת‪ ,‬מבלי שיהיה צורך במימוש פיזי של‬
‫סביבה זו‪.‬‬
‫מפעילה‬
‫תוכנית‬
‫• משחררת את התוכנה המתבססת עליה מתלות‬
‫בחומרה מסוימת‪ ,‬משום שכל חומרה שעליה תמומש‬
‫המכונה הווירטואלית תאפשר את הפעלת התוכנה‪.‬‬
‫משחררת‬
‫תלות‬
‫פלאפוניה‪ -‬סאמח עבאס ‪JME-‬‬
‫© ‪Samih Abbas‬‬
‫‪5‬‬
?JAVA ‫למה‬
)JVM -Java Virtual Machine (
6
JME- ‫ סאמח עבאס‬-‫פלאפוניה‬
Samih Abbas ©
?JAVA ‫למה‬
)JVM -Java Virtual Machine (
7
JME- ‫ סאמח עבאס‬-‫פלאפוניה‬
Samih Abbas ©
?JAVA ‫למה‬
Write once, run anywhere
JME- Samih ‫ סאמח עבאס‬-‫פלאפוניה‬
Abbas ©
8
9
JVM ‫הטלפונים החכמים ו‬
)JME – Java Micro Edition(
10
JVM
JME – Java Micro Edition
11
‫בנוסף ב ‪J2ME‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪ Java‬למכשירים חזקים כמו ‪PDA - Personal Digital‬‬
‫‪Assistant‬‬
‫שווה להזכיר יש גם ‪ Java TV‬לטלוויזיה אינטראקטיבית‬
‫ומשחקים הרצים על ממירים כתובים ב‪ .Java‬ששיכים לאותו‬
‫הקבוצה‪.‬‬
‫אפליקציות ‪ – Embedded‬למשל מערכת בקרה לרובוט‬
‫שהוצגה ב‪ Java ONE-‬האחרונה או ‪.Java on card‬‬
‫‪12‬‬
‫מה בחלופה זו?‬
‫‪ ‬בחלופה זו יתכנתו התלמידים אפליקציות בשפת‬
‫‪JAVA‬שרצות על מכשירים קטנים שמאפשרים הרצת‬
‫אפליקציות שנקראים מכשירים חכמים( ‪Smart‬‬
‫‪ )Devices‬כגון הטלפונים הניידים‪ ,‬מחשבי כף יד וכו'‪.‬‬
‫‪ ‬המטרה‪:‬‬
‫‪ ‬שהתלמיד יתכנת תוכנה בממשק משתמש גראפי בהקשר‬
‫הטלפונים הניידים‪ ,‬ע"י שימוש בממשק משתמש גראפי‬
‫רמה‪-‬גבוהה (שימוש ברכיבי ממשק משתמש גראפיים‬
‫קיימים)‪ ,‬וגם שימוש בממשק משתמש גראפי רמה‪-‬נמוכה‪.‬‬
‫‪13‬‬
‫היעדים‬
‫להכיר מה הם מאפייני תוכנה שרצה על מכשירים זעירים‪.‬‬
‫להכיר וללמוד עקרונות בבניית משחקים‪ ,‬ולבנות אפליקציות כאלו‪.‬‬
‫להכיר את המוגבלויות הכרוכות במכשירים אלו מבחינת התכנות‪.‬‬
‫להכיר וללמוד את הטכנולוגיה ‪j2me‬בפרט הקשורה לטלפונים ניידים‪.‬‬
‫להכיר את המכונה הוירטואלית ותפקידה‪.‬‬
‫ללמוד עקרונות פיתוח תוכנה בשפת תכנות מונחת עצמים‪.‬‬
‫להכיר מערכת ניהול האפליקציות במכשירים זעירים‪.‬‬
‫‪14‬‬
‫תכני ההתמחות‬
‫‪15‬‬
,jme ‫ ו‬JAVA ‫רקע טכנולוגיות‬
MIDP ,CLDC
16
‫מטרות‪ ,‬דרישות וטווח‬
‫סטנדרטים‬
‫מטרות על‪.‬‬
‫‪ MIDP , CLDC‬ומכשירי‬
‫יעד‪.‬‬
‫דרישות כלליות‪.‬‬
‫דרישות חומרה של‬
‫‪.CLDC‬‬
‫טווח סטנדרטים‬
‫של ‪ CLDC‬ו ‪.MIDP‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪17‬‬
‫תכנות מונחה עצמים ‪OOP‬‬
‫בשפת ‪JAVA‬‬
‫מבוא לעצמים ומחלקות‪.‬‬
‫מחלקות‪.‬‬
‫מערכים‪ ,‬מחרוזות( ‪ String‬ו ‪,)StringBuffer‬‬
‫הרשאות גישה ומנגנון התיעוד ‪.javadoc‬‬
‫הורשה ופולימורפיזם ‪.‬‬
‫ממשק ‪.interface‬‬
‫מחלקות מופשטות ‪.‬‬
‫אוספים ‪.Hashtable ,Vector :‬‬
‫חריגות ‪.Exception‬‬
‫מודל האירועים ‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪18‬‬
‫חבילות‪/‬ספריות ה ‪CLDC‬‬
‫‪ ‬מחלקות נגזרות מ ‪.j2se‬‬
‫‪ ‬מחלקות ספציפיות ב‬
‫‪ CLDC‬ומחלקות חדשות‬
‫מגרסה ‪.CLDC 1.1‬‬
‫‪ ‬חבילות‪/‬ספריות בסיסיות‬
‫המיוחדות של ‪.j2me‬‬
‫‪19‬‬
MIDP ‫מודל אפליקציות ה‬
Mobile Information Device (
)Profile
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Midlet extends MIDlet {
public void startApp() {
}
public void pauseApp() {
}
public void destroyApp(boolean b){
}
}
20
‫ממ"ג ממשק משתמש גרפי ‪(GUI-‬‬
‫‪Graphic‬‬
‫‪21‬‬
‫ רמה גבוהה‬MIDP ‫ממ"ג‬
Screen ‫ מסך‬:)high level(
22
.Commands ‫פקדים‬
command
23
Form ‫טופס‬
24
‫ממשק משתמש גרפי רמה נמוכה‬
(low level Graphic User
Interface
25
‫תכנות מקבילי ‪ -‬תהליכונים‬
‫‪Threads‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪26‬‬
‫מה זה תכנות מקבילי?‬
‫‪ thread‬בתוך אפליקציה‪ ,‬מימוש הממשק ‪Runnable‬‬
‫יצירת ‪ thread‬באמצעות הורשה מהמחלקה ‪.Thread‬‬
‫‪ threads‬מרובים‪ :‬תזמון בין רצפי פעולה ‪- threads‬‬
‫‪ ,scheduling‬סיום חייו של ‪ , thread‬המתודה ‪ isAlive‬ו‬
‫‪.join‬‬
‫שמירת שלמות הנתונים ‪.synchronization -‬‬
‫בעיית ה‪.Deadlock-‬‬
‫המתודות )(‪ wait‬ו‪.notify() -‬‬
‫המתודות )(‪ suspend‬ו‪.resume() -‬‬
‫המתודה )(‪.stop‬‬
Game API ‫תכנות משחקים‬
Sprites
27
‫טיפול בקול ‪Sound API‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪28‬‬
‫סקירה‪ ,Mobile Media API ,MIDP Sound API:‬דרישות‪,‬‬
‫ארכיטקטורה ‪.MIDP Sound‬‬
‫יצירת וניהול נגן (‪ :)Player‬יצירת נגן נתוני מדיה‪ ,‬מקורות נתונים‬
‫למדיה‪ ,‬מאזין לנגן‪ ,‬יצירת צליל‪.‬‬
‫בקרי מדיה‪ :‬בקרי צליל‪ ,‬בקרי עוצמת קול‪.‬‬
‫תמיכה משופרת במידיה ע"י ‪.Mobile Media API‬‬
‫אחסון נתונים ע"י מערכת ‪RMS‬‬
‫‪Record -RMS ‬‬
‫‪Management‬‬
‫‪System‬‬
‫‪ ‬רשומות ורשומות‬
‫אחסון ( ‪Record‬‬
‫‪:)Stores‬הפעלה‪,‬‬
‫ניהול‪ ,‬המרה מ‪/‬למערך‬
‫ביתים‪ ,‬סינון‪ ,‬השוואה‪,‬‬
‫האזנה ועוד‪.‬‬
‫‪29‬‬
‫תכני החלופה‬
‫בנוסף אפשר עוד‬
Light Weight UI Toolkit (LWUIT) 
.BlueTooth 
.Networking 
.3D 
30
‫‪Light Weight UI Toolkit‬‬
‫)‪(LWUIT‬‬
‫‪‬‬
‫‪‬‬
‫‪31‬‬
‫חבילת ממשק משתמש גרפי‬
‫מעוצבת‪.‬‬
‫חיקוי ל ‪ Swing‬של ‪JSE‬‬
‫שמתאים ל ‪.JME‬‬
LWUIT
32
‫סביבת עבודה‬
‫סביבת פיתוח‪ ,‬צריך להוריד ולהתקין את‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪JDK 6.‬‬
‫)‪ NetBeans IDE 6.9. (With Mobile feature‬‬
‫‪ ‬תוכנה לעיבוד תמונות‪:‬‬
‫‪ Paint.net‬‬
‫‪33‬‬
‫תכני החלופה‬
‫חלוקת שעות‪:‬‬
‫‪‬‬
‫כיתה י"א ‪ 180-200‬ש"ה (כ ‪ 6‬ש"ש) עד פרק ‪:10‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫מבוא ‪.MIDlet +‬‬
‫לימוד סיבית העבודה‪.‬‬
‫תמ"ע בשפת גאווה (היום אחרי שינוי שפות התכנות נשארו רק הנושאים המתקדמים‪ :‬ירושה‪,‬‬
‫פולימורפיזם‪ ,‬חריגות וממשקים)‪.‬‬
‫ממשק משתמש גרפי (‪.)high-level‬‬
‫בחירה‪ :‬פרק ‪ 16‬אחסון נתונים ע"י מערכת ‪.RMS‬‬
‫מי שמלמד את היחידה ה ‪ 5‬בתמ"ע חוסך עוד יותר זמן ויוכל להתחיל עם גרפיקה (‪low-‬‬
‫‪.)level‬‬
‫כיתה י"ב כ ‪ 220‬ש"ה (‪ 8-9‬ש"ש)‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪34‬‬
‫גרפיקה (‪,)low-level‬אירועים‪ ,‬תכנות מקבילי‪ ,‬אחסון נתונים ע"י מערכת ‪. RMS‬‬
‫קול‪.‬‬
‫ממשקי משחקים‪.‬‬
‫הנחיית פרויקטים‪.‬‬
‫רמת הפרויקט‬
‫‪ ‬בפרויקט בהיקף של ‪ 1‬יח"ל‬
‫אפליקציה ממומשת ב ‪.high level UI‬‬
‫‪ ‬בפרויקט בהיקף של ‪ 3‬יח"ל‬
‫אפליקציה ממומשת ב ‪ high level UI‬ורכיבים גראפיים‬
‫חדשים ‪ custom item‬שבונה אותם תלמיד‪.‬‬
‫‪ ‬בפרויקט בהיקף של ‪ 5‬יח"ל‬
‫פרויקט המיושם ב ‪:low level Graphic‬‬
‫‪.Canvas API, Game API, MultiThreading‬‬
‫‪35‬‬
‫היכרות עם סביבת העבודה‬
‫‪ ‬הדגמה‬
‫‪36‬‬
‫תודה רבה לכם‬
‫‪37‬‬