Transcript JAVA

© Keren Kalif
‫ בסיסי‬android ‫פיתוח‬
‫קרן כליף‬
‫‪© Keren Kalif‬‬
‫ביחידה זו נלמד‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫סביבת העבודה לפיתוח לאנדרואיד‬
‫רכיבי פרוייקט אנדרואיד‬
‫דוגמא הכוללת ‪thread‬‬
‫דוגמא הכוללת תקשורת‬
‫‪2‬‬
© Keren Kalif
3
NetBeans -‫הנחיות להתקנת אנדרואיד ב‬
http://kenai.com/projects/nbandroid/pages/Install 
© Keren Kalif
4
eclipse -‫ ל‬plugin -‫התקנת ה‬
:plug-in ‫ יש להתקין באקליפס‬,‫ כדי לפתח לאנדרואיד‬
Add  Install New Software  Help ‫ בתפריט‬
:‫ להעתקה‬
Android Plugin - https://dl-ssl.google.com/android/eclipse/
‫התקנת האמולטור‬
‫‪© Keren Kalif‬‬
‫‪ ‬יש להוריד את ה‪ SDK -‬מהלינק הבא‪:‬‬
‫‪http://developer.android.com/sdk/index.html‬‬
‫‪ ‬יש לפתוח את ה‪ ZIP -‬של ה‪ SDK -‬ולהריץ מתוכו את הקובץ‬
‫‪SDK Manager.exe‬‬
‫‪ ‬לאחר ההתקנה יש לפתוח ולקנפג את המערכת באמצעות ה‪-‬‬
‫‪:Virtual Devices‬‬
‫‪5‬‬
‫קינפוג האמולטור‬
‫שם האמולטור‬
‫גרסאת מערכת ההפעלה איתה נעבוד‬
‫גודל כרטיס הזיכרון על‬
‫האנדרואיד הוירטואלי‬
‫כיצד יראה המכשיר הוירטואלי‬
‫(למשל‪ ,‬גודל המסך)‬
‫החומרה שיש על המכשיר‪ .‬עדיף לא‬
‫להוסיף יותר מדיי כדי לא להכביד‪.‬‬
‫‪6‬‬
‫‪© Keren Kalif‬‬
‫הפעלת האמולטור‬
‫‪7‬‬
‫‪© Keren Kalif‬‬
‫קישור האקליפס לעבודה עם האמולטור‬
‫‪ ‬בתפריט ‪:Windows  Preferences‬‬
‫יש לבחור את מיקום‬
‫התיקיה שאליה התקנו‬
‫את ה‪ SDK -‬של ה‪-‬‬
‫‪android‬‬
‫‪8‬‬
‫‪© Keren Kalif‬‬
‫יצירת פרוייקט‬
‫‪android‬‬
‫שם הפרוייקט‬
‫‪File  New  Project ‬‬
‫‪Android Project‬‬
‫הגרסא איתה נעבוד‬
‫שם האפליקציה‬
‫שם ה‪ .package -‬חייב להכיל "‪".‬‬
‫שם ה‪( activity -‬הסבר בקרוב)‬
‫‪9‬‬
‫‪© Keren Kalif‬‬
‫הפרוייקט שנוצר‬
‫משמע זוהי מחלקה‬
‫שהתוצר שלה הוא חלון‬
‫‪10‬‬
‫‪© Keren Kalif‬‬
‫משאבים )‪(Resources‬‬
‫‪ ‬בפלטפורמת אנדרואיד מקובל שכל מה שאינו קוד של ה‪ BL -‬יכתב‬
‫במשאב‪ :‬תצוגת המסך‪ ,‬מחרוזת‪ ,‬תמונה‪ ,‬קול וכד'‬
‫‪ ‬אחד היתרונות הוא למשל תמיכה בריבוי שפות‪ :‬הקוד עובד מול‬
‫קבועים המקבלים ערכם מקובץ המשאבים‪ ,‬ועבודה מול שפה שונה‬
‫גוררת רק החלפת קובץ המשאבים‬
‫‪ ‬קבצי ה‪ resources -‬שאינם בינאריים שמורים כ‪ ,XML -‬ובזמן‬
‫הקומפילציה רכיב הנקרא ‪ Resource Compiler‬מתרגם אותם‬
‫לקובץ שנקרא ‪ R.java‬ודרכו ניתן לגשת למשאבים אלו‬
‫‪11‬‬
‫‪© Keren Kalif‬‬
‫הסבר על המנגנון‬
‫‪ ‬בפיתוח לאנדרואיד אנחנו כותבים את‬
‫ה‪ UI -‬בקבצי ‪ resources‬שהם‬
‫למעשה קבצי ‪XML‬‬
‫‪ ‬הקומפיילר מתרגם אותם לקובץ‬
‫‪ R.java‬שנוצר תחת הכניסה ‪gen‬‬
‫(קיצור ל‪)generated -‬‬
‫‪12‬‬
‫‪© Keren Kalif‬‬
(Resources) ‫משאבים‬
© Keren Kalif
13
‫הסבר על ה‪ View -‬המתקבל‬
‫‪ ‬הקובץ ‪ main.xml‬מכיל מידע איך יראה‬
‫החלון‪ .‬ה‪ onCreate -‬מציגה את ה‪-‬‬
‫‪ layout‬המבוקש‬
‫‪14‬‬
‫‪© Keren Kalif‬‬
‫משאבים )‪(Resources‬‬
‫‪ ‬המשאבים מתקמפלים לקובץ ‪:R.java‬‬
‫‪15‬‬
‫‪© Keren Kalif‬‬
‫יצירה ושימוש ב‪ View -‬שאנחנו מגדירים‬
‫‪ ‬השיטה ‪ setContentView‬מקבלת כפרמטר אובייקט מטיפוס‬
‫‪ ,View‬כלומר קובץ ה‪ XML -‬מתורגם ל‪View -‬‬
‫‪ ‬ניתן להגדיר מחלקה היורשת מ‪ View -‬ובכך להציג תוכן משלנו‬
‫‪ ‬כל רכיב תצוגה יהיה סוג של ‪ View‬וכולם יהיו מוכלים בתוך ‪View‬‬
‫ראשי‬
‫‪16‬‬
‫‪© Keren Kalif‬‬
‫הדוגמא ‪android_balls‬‬
‫‪:Ball.java ‬‬
‫‪ ‬מכילה לוגיקה של כדור‬
‫‪:BallView.java ‬‬
‫‪ ‬הינה רכיב שיוצג על המסך‪ ,‬לכן יורשת מ‪View -‬‬
‫‪ ‬דורסת את השיטה ‪ onDraw‬המציירת את הכדור בפועל על המסך‬
‫‪:MainView.java ‬‬
‫‪ ‬הרכיב המרכזי שיוצג על המסך‪ ,‬ולכן מכיל את ה‪BallView -‬‬
‫‪ ‬בעל תמונת רקע‬
‫‪ ‬מממש את ‪ Runnable‬כדי להזיז את הכדורים על המסך‬
‫‪:BallsActivity.java ‬‬
‫‪ ‬מאתחלת את ה‪ View -‬השונים ומקשרת בינהם‬
‫‪17‬‬
‫‪© Keren Kalif‬‬
‫קבצי המשאבים בדוגמא ‪android_balls‬‬
‫‪ ‬בקובץ ‪ main.xml‬אין קוד מאחר ואנחנו משתמשים במחלקת‬
‫‪ View‬שאנחנו בנינו‬
‫‪ ‬בקובץ ‪ string.xml‬יש רק איזכור ל‪app_name -‬‬
‫‪18‬‬
‫‪© Keren Kalif‬‬
‫הדוגמא ‪client_chat‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫מגדירה ב‪ main.xml -‬את כל הרכיבים שיוצגו בחלון המרכזי‬
‫ניתן ‪ id‬לכל פקד מאחר ונרצה גישה לפקד בהמשך (למשל קריאת‬
‫כתובת ה‪ ,IP -‬הפורט או הטקסט)‬
‫הטקסט על הפקדים לקוח מ‪strings.xml -‬‬
‫הקובץ ‪:AndroidClient.java‬‬
‫‪ ‬הוא ה‪ View -‬המרכזי ולכן יורש מ‪Activity -‬‬
‫‪ ‬לוקח קישור לכל הפקדים מה‪ Layout -‬שצריך לקחת מהם מידע‪,‬‬
‫למשל‪:‬‬
‫;)‪setContentView(R.layout.main‬‬
‫ה‪ txtIp -‬הוגדר במשאב ‪ main.xml‬ותורגם‬
‫;)‪findViewById(R.id.txtIp‬‬
‫לקובץ ‪.R.java‬‬
‫ה‪ Activity -‬עובד אך ורק מול הקובץ ‪ R‬וקורא‬
‫את המשאבים שהוגדרו ב‪ layout -‬המבוקש‪.‬‬
‫‪19‬‬
‫‪© Keren Kalif‬‬
‫הדוגמא ‪client_chat‬‬
‫‪ ‬הקובץ ‪( AndroidClient.java‬המשך)‪:‬‬
‫‪ ‬קישור אירועים לכפתורים‬
‫‪ ‬הגדרת ההתחברות לסרבר‬
‫‪ ‬לשים לב‪ :‬כאשר מ‪ thread -‬רוצים לעדכן שוב את התצוגה‪ ,‬יש‬
‫לחזור ל‪ thread -‬הראשי‪ ,‬בדיוק כמו ב‪!SWING -‬‬
‫‪ ‬פעולת הצגת הודעה למסך‪Toast.makeToast(…).show() :‬‬
‫‪ ‬הקובץ ‪:AndroidManifest.xml‬‬
‫‪ ‬כדי לאפשר חיבור לאינטרנט דרך האפליקציה יש להוסיף את השורה‪:‬‬
‫>‪<uses-permission android:name="android.permission.INTERNET" /‬‬
‫‪20‬‬
‫‪© Keren Kalif‬‬
‫ להריץ‬Activity ‫בחירת איזה‬
:‫ יורץ‬activity ‫ מוגדר איזה‬AndroidManifest.xml ‫ בקובץ‬
© Keren Kalif
21
‫התקנת האפליקציה על מכשיר ה‪android -‬‬
‫‪ ‬לאחר קומפילציה‪ ,‬בתיקייה ‪ bin‬יווצר קובץ עם סיומת ‪.apk‬‬
‫‪ ‬יש להעבירו למכשיר‪ ,‬ופשוט להתקין‪ ..‬‬
‫‪22‬‬
‫‪© Keren Kalif‬‬
‫ביחידה זו למדנו‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫סביבת העבודה לפיתוח לאנדרואיד‬
‫רכיבי פרוייקט אנדרואיד‬
‫דוגמא הכוללת ‪thread‬‬
‫דוגמא הכוללת תקשורת‬
‫‪© Keren Kalif‬‬
‫‪23‬‬