Documents
Resources
Learning Center
Upload
Plans & pricing Sign in
Sign Out

android _Android

VIEWS: 21 PAGES: 54

									‫תכנות ב ‪android‬‬


                  ‫אליהו חלסצ'י‬
                                             ‫ארכיטקטורת ‪android‬‬

‫הקדמה‬                                      ‫מעגל החיים של אפליקציה‬
                                             ‫הקמת תשתית עבודה‬
                                                 ‫‪Hello World‬‬
                                              ‫דוגמאות מתקדמות‬
                                                   ‫הטמעה‬



                 ‫עד כה נחשפנו לטכנולוגית ה ‪J2ME‬‬                ‫‪‬‬

        ‫מעתה נכיר טכנולוגיות נוספות לתכנות בסלולר‬              ‫‪‬‬

                            ‫היום נלמד על ‪android‬‬               ‫‪‬‬

                                      ‫על סדר היום:‬             ‫‪‬‬
                                            ‫הרצאה‬         ‫‪‬‬

                             ‫ארכיטקטורת ‪android‬‬       ‫‪‬‬

                          ‫מעגל החיים של אפליקציה‬      ‫‪‬‬

                                              ‫תרגול‬       ‫‪‬‬

                            ‫הקמת תשתית העבודה‬         ‫‪‬‬

                                    ‫‪Hello World‬‬       ‫‪‬‬

                               ‫דוגמאות מתקדמות‬        ‫‪‬‬
                                             ‫ארכיטקטורת ‪android‬‬

‫רקע‬                                        ‫מעגל החיים של אפליקציה‬
                                             ‫הקמת תשתית עבודה‬
                                                 ‫‪Hello World‬‬
                                              ‫דוגמאות מתקדמות‬
                                                   ‫הטמעה‬



         ‫‪ Android .inc‬נרכשה ע"י ‪ Google‬ב 5002‬                 ‫‪‬‬

 ‫מערכת הפעלה מבוססת לינוקס למכשירים סלולריים‬                  ‫‪‬‬

                 ‫תכנות אפליקציות באמצעות ‪Java‬‬                 ‫‪‬‬

                           ‫ב 7002 נחשף לציבור‬                 ‫‪‬‬

               ‫רובו קוד פתוח תחת רישיון ‪apache‬‬                ‫‪‬‬

        ‫ברבעון הראשון של 0102 מכירות של מערכת‬                 ‫‪‬‬
   ‫ההפעלה ‪ android‬ל ‪ smart phones‬בארה"ב היו‬
      ‫במקום השני מכולן, לאחר מעה"פ של ‪black berry‬‬         ‫‪‬‬

‫המכירות עקפו את המכירות של ‪( iphone‬הצפי היה 2102)‬         ‫‪‬‬
                       ‫ארכיטקטורת ‪android‬‬

‫ארכיטקטורת ‪android‬‬   ‫מעגל החיים של אפליקציה‬
                       ‫הקמת תשתית עבודה‬
                           ‫‪Hello World‬‬
                        ‫דוגמאות מתקדמות‬
                             ‫הטמעה‬
                                   ‫ארכיטקטורת ‪android‬‬

‫ארכיטקטורת ‪android‬‬               ‫מעגל החיים של אפליקציה‬
                                   ‫הקמת תשתית עבודה‬
                                       ‫‪Hello World‬‬
                                    ‫דוגמאות מתקדמות‬
                                         ‫הטמעה‬



                           ‫• הארכיטקטורה מבוססת על‬
                                 ‫6.2 ‪Linux Kernel‬‬
                     ‫• מהווה שכבת אבסטרקציה לחומרה‬
                     ‫• מודל התקנים מוכח כאמין ורובסטי‬
                                                  ‫• מספק:‬
                        ‫• ‪memory management‬‬
                        ‫• ‪process management‬‬
                                   ‫• ‪networking‬‬
                                   ‫ארכיטקטורת ‪android‬‬

‫ארכיטקטורת ‪android‬‬               ‫מעגל החיים של אפליקציה‬
                                   ‫הקמת תשתית עבודה‬
                                       ‫‪Hello World‬‬
                                    ‫דוגמאות מתקדמות‬
                                         ‫הטמעה‬



                         ‫• ה ‪ Native Libraries‬נכתבו ב‬
                                            ‫++‪C \ C‬‬
                        ‫• נדבר איתם דרך ממשקי ‪Java‬‬
                                              ‫מבט כללי:‬
                     ‫• ה ‪ surface manager‬אחראי שכל‬
                       ‫הגרפיקה מכל תהליך תוצג במקום‬
                      ‫• ‪ :openGL / SGL‬ניתן להשתמש‬
                        ‫בהאצת חומרה ולשלב ‪ 2D‬ו ‪3D‬‬
                       ‫• ‪ :Media framework‬כל ‪codec‬‬
                              ‫אפשרי של אודיו או וידאו‬
                               ‫• ‪ :Webkit‬מנוע הדפדפן‬
                       ‫ארכיטקטורת ‪android‬‬

‫ארכיטקטורת ‪android‬‬   ‫מעגל החיים של אפליקציה‬
                       ‫הקמת תשתית עבודה‬
                           ‫‪Hello World‬‬
                        ‫דוגמאות מתקדמות‬
                             ‫הטמעה‬
                                                ‫ארכיטקטורת ‪android‬‬

‫ארכיטקטורת ‪android‬‬                            ‫מעגל החיים של אפליקציה‬
                                                ‫הקמת תשתית עבודה‬
                                                    ‫‪Hello World‬‬
                                                 ‫דוגמאות מתקדמות‬
                                                      ‫הטמעה‬



                       ‫‪Dalvik Virtual Machine‬‬
    ‫‪ ‬ה ‪ VM‬של ‪ - Android‬מותאם לסביבת ‪embedded‬‬
                  ‫זיכרון, כוח עיבוד, וחיי סוללה מוגבלים‬      ‫‪‬‬

        ‫‪ VM‬הן לרוב בארכיטקטורת ‪stack machines‬‬                     ‫‪‬‬

               ‫בעוד שה ‪ DVM‬היא ‪register based‬‬                     ‫‪‬‬
                     ‫השיטה השלטת במעבדים רגילים‬              ‫‪‬‬

                                       ‫המשמעות היא:‬               ‫‪‬‬
              ‫יותר קוד כדי לבצע הוראה מהשפה העילית‬           ‫‪‬‬

            ‫אך פחות הוראות ‪ VM‬כדי לבצע את התוכנית‬            ‫‪‬‬

            ‫הוכח אמפירית כיותר יעיל ל ‪interpreter‬‬                 ‫‪‬‬
                                         ‫ארכיטקטורת ‪android‬‬

‫ארכיטקטורת ‪android‬‬                     ‫מעגל החיים של אפליקציה‬
                                         ‫הקמת תשתית עבודה‬
                                             ‫‪Hello World‬‬
                                          ‫דוגמאות מתקדמות‬
                                               ‫הטמעה‬



                 ‫‪ - Dalvik Virtual Machine‬המשך‬
‫‪ ‬באמצעות תוכנית בשם ‪ dx‬מתבצעת המרה לקובצי ה‬
                  ‫‪ class‬לקובצי ‪( dex‬מקביל ל ‪)Jar‬‬
                      ‫‪ ‬קובץ ‪ dex‬מהווה ‪byte code‬‬
               ‫עבור ה ‪)dalvik executable( DVM‬‬
                 ‫‪ ‬כל מידע כפול מופיע רק פעם אחת‬
 ‫‪ ‬גם כשהוא לא מכווץ הוא קטן יותר מקובץ ‪ Jar‬מכווץ‬
                                      ‫ארכיטקטורת ‪android‬‬

‫ארכיטקטורת ‪android‬‬                  ‫מעגל החיים של אפליקציה‬
                                      ‫הקמת תשתית עבודה‬
                                          ‫‪Hello World‬‬
                                       ‫דוגמאות מתקדמות‬
                                            ‫הטמעה‬



              ‫‪ - Dalvik Virtual Machine‬המשך‬
     ‫‪ ‬ה ‪ data structure‬של קובץ ‪ dex‬בנוי בצורה‬
      ‫שמאפשרת שיתוף מידע בין תהליכים שונים‬
            ‫‪ ‬זה מתאפשר מכיוון שהמידע לא צמוד‬
              ‫לאובייקט אלא מנוהל במקום מרוכז‬
                  ‫‪ ‬המשמעות של כל מה שתיארנו‬
                  ‫עד עתה היא שניתן להריץ כמה‬
                     ‫מופעים של ה ‪ VM‬בו זמנית‬
                                    ‫ארכיטקטורת ‪android‬‬

‫ארכיטקטורת ‪android‬‬                ‫מעגל החיים של אפליקציה‬
                                    ‫הקמת תשתית עבודה‬
                                        ‫‪Hello World‬‬
                                     ‫דוגמאות מתקדמות‬
                                          ‫הטמעה‬



           ‫‪ - Dalvik Virtual Machine‬המשך‬
                ‫‪ ‬מנגנון של ‪ JIT‬נמצא בפיתוח‬
        ‫‪ ‬יש גרסא ניסיונית החל מ 0.2 ‪Android‬‬
          ‫‪ ‬ביצועים מעולים בגרסא 2.2 החדשה‬

                            ‫‪Core Libraries‬‬
                           ‫‪ ‬כתובות ב ‪Java‬‬
                      ‫‪ ‬דרכם אנו מדברים עם‬
                       ‫ה ‪Native Libraries‬‬
                                      ‫ארכיטקטורת ‪android‬‬

‫ארכיטקטורת ‪android‬‬                  ‫מעגל החיים של אפליקציה‬
                                      ‫הקמת תשתית עבודה‬
                                          ‫‪Hello World‬‬
                                       ‫דוגמאות מתקדמות‬
                                            ‫הטמעה‬



            ‫‪ - Dalvik Virtual Machine‬המשך‬
        ‫‪ ‬עדיין אין מנגנון של ‪( JIT‬נמצא בפיתוח)‬
             ‫‪ ‬יש גרסא ניסיונית ב 0.2 ‪Android‬‬

                              ‫‪Core Libraries‬‬
                             ‫‪ ‬כתובות ב ‪Java‬‬
                        ‫‪ ‬דרכם אנו מדברים עם‬
                         ‫ה ‪Native Libraries‬‬
                                  ‫ארכיטקטורת ‪android‬‬

‫ארכיטקטורת ‪android‬‬              ‫מעגל החיים של אפליקציה‬
                                  ‫הקמת תשתית עבודה‬
                                      ‫‪Hello World‬‬
                                   ‫דוגמאות מתקדמות‬
                                        ‫הטמעה‬


                        ‫ה ‪:Application Framework‬‬
                                  ‫• כתוב כולו ב ‪Java‬‬
                        ‫• מהווה את התשתית לכתיבת‬
                             ‫האפליקציות ב ‪Android‬‬
                                            ‫מבט כללי:‬
                          ‫• ‪ Activity manager‬אחראי‬
                     ‫לניהול מעגל החיים של אפליקציות‬
                        ‫• ‪ Package manager‬אחראי‬
                        ‫לניהול האפליקציות המותקנות‬
                       ‫• ‪ Content providers‬מאפשר‬
                       ‫לכל אפליקציה לשתף מידע עם‬
                                 ‫אפליקציות אחרות‬
                                ‫ארכיטקטורת ‪android‬‬

‫ארכיטקטורת ‪android‬‬            ‫מעגל החיים של אפליקציה‬
                                ‫הקמת תשתית עבודה‬
                                    ‫‪Hello World‬‬
                                 ‫דוגמאות מתקדמות‬
                                      ‫הטמעה‬



                     ‫• בשכבה העליונה נמצאות כמובן‬
                                  ‫האפליקציות עצמן‬
                           ‫• ‪ Android‬מגיע עם כמה‬
                                ‫אפליקציות מוכנות‬
                          ‫•בשכבה זו אנו כותבים את‬
                                 ‫האפליקציות שלנו‬
                       ‫• בשפת ‪ Java‬תוך כדי שימוש‬
                                  ‫בתשתית הקיימת‬
                       ‫ארכיטקטורת ‪android‬‬

‫ארכיטקטורת ‪android‬‬   ‫מעגל החיים של אפליקציה‬
                       ‫הקמת תשתית עבודה‬
                           ‫‪Hello World‬‬
                        ‫דוגמאות מתקדמות‬
                             ‫הטמעה‬
                                             ‫ארכיטקטורת ‪android‬‬

‫אבני הבניין של אפליקציה‬                    ‫מעגל החיים של אפליקציה‬
                                             ‫הקמת תשתית עבודה‬
                                                 ‫‪Hello World‬‬
                                              ‫דוגמאות מתקדמות‬
                                                   ‫הטמעה‬




                   ‫הרכיב הכי בסיסי, בד"כ ‪ UI‬שמתאים‬
 ‫‪Activity‬‬
                                    ‫למסך אחד שלם‬
                   ‫מגיב להודעות \ שינויי סטאטוס, יכול‬
 ‫‪IntentReceiver‬‬
                                 ‫להעיר תהליך כלשהו‬

 ‫‪Service‬‬                  ‫משימה ללא ‪ UI‬שרצה ברקע‬

                   ‫מאפשר לאפליקציה לשתף מידע עם‬
 ‫‪ContentProvider‬‬
                                 ‫אפליקציות אחרות‬
                                             ‫ארכיטקטורת ‪android‬‬

‫מעגל החיים של אפליקציה‬                     ‫מעגל החיים של אפליקציה‬
                                             ‫הקמת תשתית עבודה‬
                                                 ‫‪Hello World‬‬
                                              ‫דוגמאות מתקדמות‬
                                                   ‫הטמעה‬



              ‫כל אפליקציה רצה בתוך תהליך משלה‬                 ‫‪‬‬
                    ‫‪Security, protective memory‬‬           ‫‪‬‬

    ‫אפליקציה שמעמיסה על המעבד לא תחסום תהליכים‬            ‫‪‬‬
                   ‫קריטיים אחרים כגון לענות לטלפון‬
   ‫מערכת ‪ Android‬אחראית להפעלתם ועצירתם של‬                    ‫‪‬‬
            ‫תהליכים כנדרש להרצתן של אפליקציות‬
‫יתכן שתהליכים יהרגו (ואח"כ ישוחזרו) על מנת לפנות‬              ‫‪‬‬
                        ‫משאבים לתהליכים אחרים‬
                                        ‫ארכיטקטורת ‪android‬‬

‫מעגל החיים של אפליקציה‬                ‫מעגל החיים של אפליקציה‬
                                        ‫הקמת תשתית עבודה‬
                                            ‫‪Hello World‬‬
                                         ‫דוגמאות מתקדמות‬
                                              ‫הטמעה‬



                                           ‫דוגמא:‬
        ‫‪ ‬נניח שמאפליקציית ‪ Home‬פתחנו ‪Gmail‬‬
      ‫‪ ‬בחרנו מכתב,הצגנו אותו וראינו בתוכו קישור‬
   ‫‪ ‬לחצנו על הקישור והדפדפן נפתח בעמוד כלשהו‬
              ‫‪ ‬בעמוד יש קישור למפה שלחצנו עליו‬
           ‫‪ ‬האפליקציה של תצוגת המפות נפתחה‬
           ‫‪ ‬כעת אנו רוצים לחזור מסכים אחורה...‬
                                                                    ‫ארכיטקטורת ‪android‬‬

‫מעגל החיים של אפליקציה‬                                            ‫מעגל החיים של אפליקציה‬
                                                                    ‫הקמת תשתית עבודה‬
                                                                        ‫‪Hello World‬‬
                                                                     ‫דוגמאות מתקדמות‬
                                                                          ‫הטמעה‬

   ‫‪System process‬‬
   ‫‪Activity Manager‬‬

                       ‫‪Home‬‬


   ‫‪Home‬‬
                      ‫‪Home‬‬




                                                           ‫תחילה קיימים 2 תהליכים:‬
                              ‫• ה ‪ System Process‬שמריץ את ה ‪Activity Manager‬‬
                                                    ‫שמנהל את מחסנית ה ‪Activities‬‬
                                               ‫• תהליך שמריץ את ה ‪Home Activity‬‬
             ‫‪Home‬‬             ‫• שמאפשרת למשתמש לבחור אפליקציות ולדפדף ביניהן‬
                                                                       ‫ארכיטקטורת ‪android‬‬

‫מעגל החיים של אפליקציה‬                                               ‫מעגל החיים של אפליקציה‬
                                                                       ‫הקמת תשתית עבודה‬
                                                                           ‫‪Hello World‬‬
                                                                        ‫דוגמאות מתקדמות‬
                                                                             ‫הטמעה‬

   ‫‪System process‬‬
   ‫‪Activity Manager‬‬

                       ‫‪Home‬‬


   ‫‪Home‬‬
                      ‫‪Home‬‬
                              ‫‪S‬‬


   ‫‪Mail‬‬
                                  ‫‪Mail List‬‬




                                      ‫כעת המשתמש מפעיל את אפליקציית ‪gmail‬‬
                                   ‫• ה ‪ State‬של ‪ Home‬נשמר ב ‪Activity Manager‬‬
                                                        ‫• נפתח תהליך ‪ Mail‬חדש‬
                                   ‫• ובתוכו ה ‪ Activity‬שמציגה את רשימת המכתבים‬
         ‫‪Mail List‬‬
           ‫‪Home‬‬                                       ‫• שכעת נראית על כל המסך‬
                                                                         ‫ארכיטקטורת ‪android‬‬

‫מעגל החיים של אפליקציה‬                                                 ‫מעגל החיים של אפליקציה‬
                                                                         ‫הקמת תשתית עבודה‬
                                                                             ‫‪Hello World‬‬
                                                                          ‫דוגמאות מתקדמות‬
                                                                               ‫הטמעה‬

   ‫‪System process‬‬
   ‫‪Activity Manager‬‬
                              ‫‪S‬‬
                       ‫‪Home‬‬


   ‫‪Home‬‬
                      ‫‪Home‬‬


   ‫‪Mail‬‬
                                  ‫‪Mail List‬‬   ‫‪Message‬‬
                                          ‫‪S‬‬




                                                 ‫כעת המשתמש בחר מכתב כלשהו‬
                                                   ‫• ה ‪ State‬של ה ‪ Mail List‬נשמר‬
                                         ‫• מתווספת ‪ Activity‬חדשה לתהליך של ‪Mail‬‬
                                                        ‫• שמציגה את תוכן המכתב‬
        ‫‪Message‬‬
        ‫‪Mail List‬‬
          ‫‪Home‬‬                                          ‫• שכעת נראה על כל המסך‬
                                                                        ‫ארכיטקטורת ‪android‬‬

‫מעגל החיים של אפליקציה‬                                                ‫מעגל החיים של אפליקציה‬
                                                                        ‫הקמת תשתית עבודה‬
                                                                            ‫‪Hello World‬‬
                                                                         ‫דוגמאות מתקדמות‬
                                                                              ‫הטמעה‬

   ‫‪System process‬‬
   ‫‪Activity Manager‬‬
                              ‫‪S‬‬           ‫‪S‬‬
                       ‫‪Home‬‬


   ‫‪Home‬‬
                      ‫‪Home‬‬


   ‫‪Mail‬‬
                                  ‫‪Mail List‬‬   ‫‪Message‬‬
                                                     ‫‪S‬‬


   ‫‪Browser‬‬
                                                         ‫‪Browser‬‬


                                              ‫כעת המשתמש לחץ על קישור במכתב‬
                                                  ‫• ה ‪ State‬של ה ‪ Message‬נשמר‬
                                                ‫• נוצר תהליך חדש למען ה ‪Browser‬‬
                                                    ‫• בתוכו ‪ Activity‬של ‪Browser‬‬
        ‫‪Message‬‬
          ‫‪Home‬‬                                         ‫• שכעת נראה על כל המסך‬
                                                                          ‫ארכיטקטורת ‪android‬‬

‫מעגל החיים של אפליקציה‬                                                  ‫מעגל החיים של אפליקציה‬
                                                                          ‫הקמת תשתית עבודה‬
                                                                              ‫‪Hello World‬‬
                                                                           ‫דוגמאות מתקדמות‬
                                                                                ‫הטמעה‬

   ‫‪System process‬‬
   ‫‪Activity Manager‬‬
                              ‫‪S‬‬           ‫‪S‬‬          ‫‪S‬‬
                       ‫‪Home‬‬


   ‫‪Home‬‬
                      ‫‪Home‬‬


   ‫‪Mail‬‬
                                  ‫‪Mail List‬‬   ‫‪Message‬‬


   ‫‪Browser‬‬
                                                         ‫‪Browser‬‬
                                                                   ‫‪S‬‬


                                        ‫כעת המשתמש לחץ על קישור לפתיחת מפה‬
                                                 ‫• ה ‪ State‬של ה ‪ Browser‬נשמר‬
                                             ‫• נרצה לפתוח את אפליקציית ה ‪Maps‬‬
                                                  ‫• אך אין לנו מקום לעוד תהליך...‬
             ‫‪Home‬‬
                                                                         ‫ארכיטקטורת ‪android‬‬

‫מעגל החיים של אפליקציה‬                                                 ‫מעגל החיים של אפליקציה‬
                                                                         ‫הקמת תשתית עבודה‬
                                                                             ‫‪Hello World‬‬
                                                                          ‫דוגמאות מתקדמות‬
                                                                               ‫הטמעה‬

   ‫‪System process‬‬
   ‫‪Activity Manager‬‬                                                ‫‪S‬‬
                              ‫‪S‬‬           ‫‪S‬‬          ‫‪S‬‬
                       ‫‪Home‬‬


   ‫‪Home‬‬
                      ‫‪Home‬‬


   ‫‪Mail‬‬
                                  ‫‪Mail List‬‬   ‫‪Message‬‬


   ‫‪Browser‬‬
                                                         ‫‪Browser‬‬


                                  ‫• לא נהרוג את תהליך ‪ ,Home‬כי הוא צריך להיות תמיד‬
                                             ‫זמין למשתמש לצורך דפדוף בין אפליקציות‬
                                   ‫• גם את תהליך ה ‪ Browser‬לא נהרוג, כי הוא האחרון‬
                                    ‫• ולכן תהליך ה ‪ Mail‬הוא זה שייהרג כדי לפנות מקום‬
             ‫‪Home‬‬
                                                                     ‫ארכיטקטורת ‪android‬‬

‫מעגל החיים של אפליקציה‬                                             ‫מעגל החיים של אפליקציה‬
                                                                     ‫הקמת תשתית עבודה‬
                                                                         ‫‪Hello World‬‬
                                                                      ‫דוגמאות מתקדמות‬
                                                                           ‫הטמעה‬

   ‫‪System process‬‬
   ‫‪Activity Manager‬‬                                           ‫‪S‬‬
                              ‫‪S‬‬      ‫‪S‬‬          ‫‪S‬‬
                       ‫‪Home‬‬


   ‫‪Home‬‬
                      ‫‪Home‬‬


   ‫‪Browser‬‬
                                                    ‫‪Browser‬‬


   ‫‪Maps‬‬
                                                                  ‫‪Maps‬‬


                                  ‫• כעת יש מקום לתהליך חדש – ייפתח עבור ‪Maps‬‬
                                                   ‫• בתוכו ה ‪ Activity‬של ‪Maps‬‬
                                                        ‫• שתיראה על כל המסך‬

             ‫‪Home‬‬
                                                                         ‫ארכיטקטורת ‪android‬‬

‫מעגל החיים של אפליקציה‬                                                 ‫מעגל החיים של אפליקציה‬
                                                                         ‫הקמת תשתית עבודה‬
                                                                             ‫‪Hello World‬‬
                                                                          ‫דוגמאות מתקדמות‬
                                                                               ‫הטמעה‬

   ‫‪System process‬‬
   ‫‪Activity Manager‬‬                                               ‫‪S‬‬
                              ‫‪S‬‬          ‫‪S‬‬          ‫‪S‬‬
                       ‫‪Home‬‬


   ‫‪Home‬‬
                      ‫‪Home‬‬


   ‫‪Browser‬‬
                                                        ‫‪Browser‬‬


   ‫‪Maps‬‬
                                                                      ‫‪Maps‬‬


                                   ‫כעת המשתמש לוחץ ‪ back‬כדי לחזור לאפליקציה האחרונה‬
                                   ‫• ה ‪ Activity‬של ‪ Maps‬תיסגר ונחזור לראות את ה ‪Browser‬‬
                                  ‫• התהליך היה פעיל אז לא היה צורך לטעון מחדש את ה ‪State‬‬
                                                                           ‫של ה ‪Browser‬‬
             ‫‪Home‬‬
                                                                        ‫ארכיטקטורת ‪android‬‬

‫מעגל החיים של אפליקציה‬                                                ‫מעגל החיים של אפליקציה‬
                                                                        ‫הקמת תשתית עבודה‬
                                                                            ‫‪Hello World‬‬
                                                                         ‫דוגמאות מתקדמות‬
                                                                              ‫הטמעה‬

   ‫‪System process‬‬
   ‫‪Activity Manager‬‬
                              ‫‪S‬‬           ‫‪S‬‬          ‫‪S‬‬
                       ‫‪Home‬‬


   ‫‪Home‬‬
                      ‫‪Home‬‬


   ‫‪Browser‬‬
                                                         ‫‪Browser‬‬


   ‫‪Mail‬‬
   ‫‪Maps‬‬
                                              ‫‪Message‬‬



                                         ‫כעת המשתמש שוב לוחץ ‪ back‬כדי לחזור אפליקציה‬
                                          ‫• תהליך ‪ Maps‬ייהרג, כדי לאפשר מקום לתהליך ‪Mail‬‬
                                                           ‫• עותק חדש של ‪ Message‬ייפתח‬
                                      ‫• הוא יתעדכן ב ‪ State‬שנשמר עבורו ב ‪Activity Manager‬‬
        ‫‪Message‬‬
          ‫‪Home‬‬
                                  ‫• כעת ה ‪ Activity‬של ‪ Browser‬תיסגר ונראה במסך את ההודעה‬
                                                                      ‫ארכיטקטורת ‪android‬‬

‫מעגל החיים של אפליקציה‬                                              ‫מעגל החיים של אפליקציה‬
                                                                      ‫הקמת תשתית עבודה‬
                                                                          ‫‪Hello World‬‬
                                                                       ‫דוגמאות מתקדמות‬
                                                                            ‫הטמעה‬

   ‫‪System process‬‬
   ‫‪Activity Manager‬‬
                              ‫‪S‬‬           ‫‪S‬‬
                       ‫‪Home‬‬


   ‫‪Home‬‬
                      ‫‪Home‬‬


   ‫‪Browser‬‬



   ‫‪Mail‬‬
                                  ‫‪Mail List‬‬   ‫‪Message‬‬



                                          ‫כעת המשתמש שוב לוחץ ‪ back‬כדי לחזור אחורה‬
                                                    ‫• תתווסף ‪ Activity‬חדשה של ‪Mail List‬‬
                                             ‫• ה ‪ State‬שלה יתעדכן מה ‪Activity Manager‬‬
                                  ‫• כעת ה ‪ Message‬תיסגר ונראה את רשימת המכתבים במסך‬
        ‫‪Message‬‬
        ‫‪Mail List‬‬
          ‫‪Home‬‬
                                           ‫ארכיטקטורת ‪android‬‬

‫הקמת תשתית עבודה‬                         ‫מעגל החיים של אפליקציה‬
                                           ‫הקמת תשתית עבודה‬
                                               ‫‪Hello World‬‬
                                            ‫דוגמאות מתקדמות‬
                                                 ‫הטמעה‬



           ‫נוריד את ה ‪ Android SDK‬מהכתובת‬                   ‫‪‬‬
     ‫‪http://developer.android.com/sdk/index.html‬‬
                       ‫נחלץ את ה ‪ zip‬לתיקייה כלשהי‬           ‫‪‬‬

    ‫אפשרי להכניס את תת התיקייה ‪ tools‬לתוך ה ‪Path‬‬             ‫‪‬‬

    ‫ניצור ‪ workspace‬חדש ל ‪ eclipse‬בשביל ‪android‬‬              ‫‪‬‬

      ‫דרך התפריט ‪ help‬נוסיף את ה ‪ plug-in‬מהכתובת‬             ‫‪‬‬

   ‫‪https://dl-ssl.google.com/android/eclipse‬‬
                                                ‫ארכיטקטורת ‪android‬‬

‫הקמת תשתית עבודה‬                              ‫מעגל החיים של אפליקציה‬
                                                ‫הקמת תשתית עבודה‬
                                                    ‫‪Hello World‬‬
                                                 ‫דוגמאות מתקדמות‬
                                                      ‫הטמעה‬



              ‫בינתיים נתקין את ה ‪ SDK‬ע"י הפעלת‬                   ‫‪‬‬
                             ‫‪SDK Setup.exe‬‬
 ‫אם תהיה לו בעיה לגשת ל ‪ repository‬של ‪ google‬נכנס ל‬               ‫‪‬‬
    ‫‪ settings‬ונסמן את ...//:‪ Force https‬נסגור ונתקין שוב‬
                                        ‫נאשר הכל ונמתין‬           ‫‪‬‬
                                        ‫עד סיום ההתקנה‬
                                           ‫תהליך זה קצת‬           ‫‪‬‬
                                                    ‫ארוך‬
                                                ‫ארכיטקטורת ‪android‬‬

‫הקמת תשתית עבודה‬                              ‫מעגל החיים של אפליקציה‬
                                                ‫הקמת תשתית עבודה‬
                                                    ‫‪Hello World‬‬
                                                 ‫דוגמאות מתקדמות‬
                                                      ‫הטמעה‬



              ‫בינתיים נתקין את ה ‪ SDK‬ע"י הפעלת‬                   ‫‪‬‬
                             ‫‪SDK Setup.exe‬‬
 ‫אם תהיה לו בעיה לגשת ל ‪ repository‬של ‪ google‬נכנס ל‬               ‫‪‬‬
    ‫‪ settings‬ונסמן את ...//:‪ Force https‬נסגור ונתקין שוב‬
                                        ‫נאשר הכל ונמתין‬           ‫‪‬‬
                                        ‫עד סיום ההתקנה‬
                                           ‫תהליך זה קצת‬           ‫‪‬‬
                                                    ‫ארוך‬
                                      ‫ארכיטקטורת ‪android‬‬

‫הקמת תשתית עבודה‬                    ‫מעגל החיים של אפליקציה‬
                                      ‫הקמת תשתית עבודה‬
                                          ‫‪Hello World‬‬
                                       ‫דוגמאות מתקדמות‬
                                            ‫הטמעה‬



   ‫לאחר סיום התקנת ה ‪ plug-in‬ה ‪ eclipse‬יופעל‬           ‫‪‬‬
  ‫מחדש, כעת נמתין שתסתיים גם התקנת ה ‪SDK‬‬
       ‫נכנס לתפריט …‪windows preferences‬‬               ‫‪‬‬

 ‫תחת ‪ Android‬נבחר את התיקייה בה חילצנו קודם‬            ‫‪‬‬
        ‫את ה ‪ zip‬שהורדנו (ה ‪ SDK‬של ‪)Android‬‬
                                         ‫ארכיטקטורת ‪android‬‬

‫הקמת תשתית עבודה‬                       ‫מעגל החיים של אפליקציה‬
                                         ‫הקמת תשתית עבודה‬
                                             ‫‪Hello World‬‬
                                          ‫דוגמאות מתקדמות‬
                                               ‫הטמעה‬



 ‫כדי שנוכל לעבוד עם אמולטור עלינו ליצור ‪Android‬‬           ‫‪‬‬
            ‫)‪ = Virtual Device (AVD‬מכשיר נייד‬
‫מתוך סרגל הכלים של ‪ eclipse‬נלחץ על הכפתור של‬              ‫‪‬‬
                                       ‫‪android‬‬
                 ‫ייפתח לנו חלון ה ‪AVD manager‬‬             ‫‪‬‬

                          ‫נבחר ‪Virtual Devices‬‬            ‫‪‬‬

                                ‫נלחץ על …‪new‬‬              ‫‪‬‬

          ‫בחלון שייפתח נגדיר מכשיר נייד כרצוננו‬           ‫‪‬‬
                     ‫ארכיטקטורת ‪android‬‬

‫הקמת תשתית עבודה‬   ‫מעגל החיים של אפליקציה‬
                     ‫הקמת תשתית עבודה‬
                         ‫‪Hello World‬‬
                      ‫דוגמאות מתקדמות‬
                           ‫הטמעה‬
                                        ‫ארכיטקטורת ‪android‬‬

‫הקמת תשתית עבודה‬                      ‫מעגל החיים של אפליקציה‬
                                        ‫הקמת תשתית עבודה‬
                                            ‫‪Hello World‬‬
                                         ‫דוגמאות מתקדמות‬
                                              ‫הטמעה‬



    ‫נוודא שהוא עובד ע"י סימונו ולחיצה על ‪Start‬‬           ‫‪‬‬
                                          ‫ארכיטקטורת ‪android‬‬

‫‪Hello world‬‬                             ‫מעגל החיים של אפליקציה‬
                                          ‫הקמת תשתית עבודה‬
                                              ‫‪Hello World‬‬
                                           ‫דוגמאות מתקדמות‬
                                                ‫הטמעה‬



  ‫ניצור פרויקט חדש ע"י …‪file  new  project‬‬               ‫‪‬‬

                        ‫נבחר ‪Android project‬‬               ‫‪‬‬

             ‫נמלא לאחר מכן את הפרטים הבאים:‬                ‫‪‬‬
                      ‫שם הפרויקט ‪HelloAndroid‬‬          ‫‪‬‬

                    ‫1.1 ‪Build target = android‬‬         ‫‪‬‬

                  ‫שם האפליקציה ‪Hello, Android‬‬          ‫‪‬‬

                    ‫נבחר שם ל ‪ package‬כרצוננו‬          ‫‪‬‬

           ‫נבחר ליצור ‪ activity‬בשם ‪HelloAndroid‬‬        ‫‪‬‬

                          ‫2 = ‪Min SDK version‬‬          ‫‪‬‬
                                                                       android ‫ארכיטקטורת‬

    Hello world                                                      ‫מעגל החיים של אפליקציה‬
                                                                       ‫הקמת תשתית עבודה‬
                                                                           Hello World
                                                                        ‫דוגמאות מתקדמות‬
                                                                             ‫הטמעה‬



                                               :‫נוצרה לנו התוכנית הבאה‬                  


package biu89697.example;                                      ‫ היא הישות‬Activity ‫המחלקה‬
                                                        .‫הבסיסית להרצת פעולות באפליקציה‬
import android.app.Activity;
import android.os.Bundle;                               ‫אפליקציה יכולה להיות מורכבת מכמה‬
                                                          ‫ אך המשתמש יכול לבצע‬Activities
public class HelloAndroid extends Activity {             .‫אינטראקציה רק עם אחת בכל פעם‬
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {    Android ‫ תופעל ע"י‬Activity ‫כשה‬
        super.onCreate(savedInstanceState);                  .‫ תיקרא‬onCreate(( ‫המתודה‬
        setContentView(R.layout.main);                     ‫היא תשמש אותנו לאתחול כללי‬
    }                                                             .UI ‫ובד"כ גם לאתחול ה‬
}
                                                                 android ‫ארכיטקטורת‬

    Hello world                                                ‫מעגל החיים של אפליקציה‬
                                                                 ‫הקמת תשתית עבודה‬
                                                                     Hello World
                                                                  ‫דוגמאות מתקדמות‬
                                                                       ‫הטמעה‬



                                                 :‫ פשוט‬UI ‫כעת נוסיף לנו‬           
package biu89697.example;                               ‫כשנריץ נתבקש‬              
import android.app.Activity;                              ‫לבחור מכשיר‬
import android.os.Bundle;
import android.widget.TextView;                        my_avd ‫נבחר ב‬              

public class HelloAndroid extends Activity {                   :‫התוצאה‬            
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView tv = new TextView(this);
        tv.setText("Hello, Android");
        setContentView(tv);
    }
}
                                               ‫ארכיטקטורת ‪android‬‬

‫‪Hello world‬‬                                  ‫מעגל החיים של אפליקציה‬
                                               ‫הקמת תשתית עבודה‬
                                                   ‫‪Hello World‬‬
                                                ‫דוגמאות מתקדמות‬
                                                     ‫הטמעה‬



                    ‫כתיבת ‪ UI‬באופן ישיר דרך הקוד‬                ‫‪‬‬
  ‫תוביל לכך ששינוי קטן ב ‪ layout‬יגרום לכאב ראש גדול‬         ‫‪‬‬

    ‫קל לשכוח לחבר ‪ views‬יחד, ויגרמו טעויות ל ‪layout‬‬         ‫‪‬‬

                                        ‫זמן ‪...debug‬‬        ‫‪‬‬

        ‫לכן ניתן ליצור ‪ UI‬גם באמצעות קובצי ‪XML‬‬                  ‫‪‬‬

         ‫נתבונן בקבצים הנוספים שה ‪ plug-in‬יצר‬                   ‫‪‬‬
                        ‫‪ – main.xml‬מגדיר את ה ‪UI‬‬            ‫‪‬‬

                ‫‪ – strings.xml‬כל המחרוזות הקבועות‬           ‫‪‬‬

                       ‫‪ – R.java‬קיצור ל ‪Resource‬‬            ‫‪‬‬
                                                                      android ‫ארכיטקטורת‬

Hello world                                                         ‫מעגל החיים של אפליקציה‬
                                                                      ‫הקמת תשתית עבודה‬
                                                                          Hello World
                                                                       ‫דוגמאות מתקדמות‬
                                                                            ‫הטמעה‬



                                          main.xml
(layout) ‫ מגדיר לנו את אופן פריסת הרכיבים הגרפים‬
                             ‫ וכן את הרכיבים עצמם‬
     ‫ ניתן לערוך אותו ידנית או באמצעות עורך ויזואלי‬
  <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical" android:layout_width="fill_parent"
     android:layout_height="fill_parent" >
  <TextView
     android:layout_width="fill_parent" android:layout_height="wrap_content"
     android:text="@string/hello"   />
  </LinearLayout>
                   ‫ארכיטקטורת ‪android‬‬

‫‪Hello world‬‬      ‫מעגל החיים של אפליקציה‬
                   ‫הקמת תשתית עבודה‬
                       ‫‪Hello World‬‬
                    ‫דוגמאות מתקדמות‬
                         ‫הטמעה‬



                 ‫‪main.xml‬‬
              ‫‪ ‬עורך ויזואלי‬
                                                         android ‫ארכיטקטורת‬

Hello world                                            ‫מעגל החיים של אפליקציה‬
                                                         ‫הקמת תשתית עבודה‬
                                                             Hello World
                                                          ‫דוגמאות מתקדמות‬
                                                               ‫הטמעה‬



                                   strings.xml
   UI ‫ כאן נגדיר את כל המחרוזות הקבועות שלנו ב‬



              <?xml version="1.0" encoding="utf-8"?>
              <resources>
                 <string name="hello">Hello World, HelloAndroid!</string>
                 <string name="app_name">Hello, Android</string>
              </resources>
                                             ‫ארכיטקטורת ‪android‬‬

‫‪Hello world‬‬                                ‫מעגל החיים של אפליקציה‬
                                             ‫הקמת תשתית עבודה‬
                                                 ‫‪Hello World‬‬
                                              ‫דוגמאות מתקדמות‬
                                                   ‫הטמעה‬



 ‫כדי שהתוכנית שלנו תשתמש בהגדרות הללו, נחזיר‬                  ‫‪‬‬
             ‫;)‪setContentView(R.layout.main‬‬ ‫את השורה‬
          ‫במקום ‪ - tv‬ה ‪ textView‬שיצרנו דרך הקוד‬               ‫‪‬‬

                ‫מתבצעת קריאה סטטית למחלקה ‪R‬‬                   ‫‪‬‬

        ‫שתפעיל את ה ‪ layout‬שמוגדר ב ‪main.xml‬‬                  ‫‪‬‬

      ‫תפקיד המחלקה – גישה מהירה ל ‪resources‬‬                   ‫‪‬‬

   ‫נוצרת אוטומטית עם כל ‪ resource‬שאנו מכניסים‬                 ‫‪‬‬

                ‫אין לערוך את המחלקה הזו ידנית (!)‬             ‫‪‬‬
                                                              android ‫ארכיטקטורת‬

Hello world                                                 ‫מעגל החיים של אפליקציה‬
                                                              ‫הקמת תשתית עבודה‬
                                                                  Hello World
                                                               ‫דוגמאות מתקדמות‬
                                                                    ‫הטמעה‬



 public final class R {                                      R.java            
     public static final class attr {
     }                                                  ‫גישה סטטית‬         
     public static final class drawable {
                                                          ‫לכל משאב‬
         public static final int icon=0x7f020000;
     }                                                  ‫לצורך נוחות‬
     public static final class layout {
         public static final int main=0x7f030000;
     }
     public static final class string {
         public static final int app_name=0x7f040001;
         public static final int hello=0x7f040000;
     }
 }
  ‫ארכיטקטורת ‪android‬‬
‫מעגל החיים של אפליקציה‬
  ‫הקמת תשתית עבודה‬
      ‫‪Hello World‬‬
   ‫דוגמאות מתקדמות‬
        ‫הטמעה‬
                                                         ‫ארכיטקטורת ‪android‬‬

‫דוגמאות מתקדמות‬                                        ‫מעגל החיים של אפליקציה‬
                                                         ‫הקמת תשתית עבודה‬
                                                             ‫‪Hello World‬‬
                                                          ‫דוגמאות מתקדמות‬
                                                               ‫הטמעה‬



                                         ‫אפליקציה שמראה לנו‬                ‫‪‬‬
                                              ‫תוך כדי תנועה‬           ‫‪‬‬

                                                    ‫על מפה‬            ‫‪‬‬

                        ‫כמה קרובים אנו לכתובות החברים שלנו‬            ‫‪‬‬

                                               ‫נראה דוגמאות ל‬              ‫‪‬‬
                                          ‫הוספה פריט לתפריט‬           ‫‪‬‬

                                           ‫שימוש במידע ‪GPS‬‬            ‫‪‬‬

                                         ‫שימוש במידע משותף‬            ‫‪‬‬

                                     ‫‪Intent / Intent Receiver‬‬         ‫‪‬‬

                                                 ‫קריאה ל ‪map‬‬          ‫‪‬‬

                                               ‫ביצוע התקשרות‬          ‫‪‬‬



    ‫מקור: ‪http://blogoscoped.com/archive/2007-11-19-n27.html‬‬
                                                                             android ‫ארכיטקטורת‬

  ‫הוספת תפריט‬                                                              ‫מעגל החיים של אפליקציה‬
                                                                             ‫הקמת תשתית עבודה‬
                                                                                 Hello World
                                                                              ‫דוגמאות מתקדמות‬
                                                                                   ‫הטמעה‬


/* Creates the menu items */
   public boolean onCreateOptionsMenu(Menu menu) {
       menu.add(0, MENU_NEW_GAME, 0, "New Game");
       menu.add(0, MENU_QUIT, 0, "Quit");
                                                           onCreateOptionsMenu                 
       return true;                                         ‫נקראת כאשר מוצר תפריט‬         
   }
   /* Handles item selections */
                                                                   ‫עלינו לדרוס אותה‬       
   public boolean onOptionsItemSelected(MenuItem item) {
                                                             ‫ מוסיפה פריט‬manu.add         
       switch (item.getItemId()) {
       case MENU_NEW_GAME:                                         ‫כשתיבחר אופציה‬              
           newGame();
           return true;                                    onOptionsItemSelected          
       case MENU_QUIT:                                                        ‫תופעל‬
           quit();
           return true;                                       ‫נזהה את האופציה לפי‬         
       }                                                       int item.getItemId()
       return false;
   }                                                                 :‫לפרטים נוספים‬            
                       http://developer.android.com/guide/topics/ui/menus.html
                                                                 android ‫ארכיטקטורת‬

GPS - Location Based Service                                   ‫מעגל החיים של אפליקציה‬
                                                                 ‫הקמת תשתית עבודה‬
                                                                     Hello World
                                                                  ‫דוגמאות מתקדמות‬
                                                                       ‫הטמעה‬




        ‫ מספקים‬android ‫ של‬location based services ‫ה‬                                
 ‫ כגון‬location providers ‫לאפליקציות הקשר גיאוגרפי דרך‬
                                                 GPS
      ‫‘ לצורכי פיתוח‬gps’ ‫ בשם‬provider ‫ מגיע עם‬android                              

     XML ‫הוא ממפה את סאן-פרנסיסקו, ניתן ליצור עוד ע"י‬                              


        LocationManager locationManager =
        (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        Location location =
        locationManager.getCurrentLocation("gps");
                                                                                    android ‫ארכיטקטורת‬

 ‫שימוש במידע משותף‬                                                                ‫מעגל החיים של אפליקציה‬
                                                                                    ‫הקמת תשתית עבודה‬
                                                                                        Hello World
                                                                                     ‫דוגמאות מתקדמות‬
                                                                                          ‫הטמעה‬


Cursor c = getContentResolver().query(People.CONTENT_URI, null,
null, null, null);                                                    ‫ יכול‬ContentResolver            
startManagingCursor(c);
int coordIdx = c.getColumnIndex(People.NOTES);
                                                                        ‫לשלוח שאילתא למידע‬
int phoneIdx = c.getColumnIndex(People.PhonesColumns.NUMBER);
int nameIdx = c.getColumnIndex(People.NAME);
                                                                                  ‫משותף של‬
List listItems = new ArrayList();                                       Content Providers
c.first();
do {
    String name = c.getString(nameIdx);
                                                                           cursor ‫נקבל חזרה‬           
    String coords = c.getString(coordIdx);                                 ‫המצביע על תחילת‬
    String phone = c.getString(phoneIdx);
                                                                             ‫התשובה שחזרה‬
                                                                           People ‫נשתמש ב‬
    //... [ Process the lat/long from the coordinates ] ...
    //... [ Storing their location under variable loc ] ...                                           

    String distStr = String.valueOf(location.distanceTo(loc)/1000);
                                                                             ‫לרשימת החברים‬
    name = name + " (" + distStr + "km)";
    listItems.add(name);


    numbers.add("tel:" + phone);
} while(c.next());
                                                                                         android ‫ארכיטקטורת‬

      Intent / Intent Receiver                                                         ‫מעגל החיים של אפליקציה‬
                                                                                         ‫הקמת תשתית עבודה‬
                                                                                             Hello World
                                                                                          ‫דוגמאות מתקדמות‬
                                                                                               ‫הטמעה‬



                                                Event / Event handler ‫המקבילים ל‬                           
List providers = locationManager.getProviders();
LocationProvider provider = providers.get(0);
                                                             ‫ חדש בכל‬Intent ‫ניזום‬                          
Intent intent = new Intent(LOCATION_CHANGED);
                                                              ...‫פעם שהמכשיר יזוז‬
locationManager.requestUpdates(provider, minTime, minDistance, intent);


  public class myIntentReceiver extends IntentReceiver {
      @Override                                                              ‫ניצור מחלקה פנימית‬            
                                                                           Intent ‫שתתפוס את ה‬
      public void onReceiveIntent(Context context, Intent intent){
          updateList();
      }
  }



          filter = new IntentFilter(LOCATION_CHANGED);                        ‫נקשר את השניים ב‬             
          receiver = new myIntentReceiver();
                                                                             ‫ או תחת‬onCreate()
          registerReceiver(receiver, filter);
                                                                          start / stop ‫תפריט כגון‬
                                                                                    android ‫ארכיטקטורת‬

     map ‫קריאה ל‬                                                                  ‫מעגל החיים של אפליקציה‬
                                                                                    ‫הקמת תשתית עבודה‬
                                                                                        Hello World
                                                                                     ‫דוגמאות מתקדמות‬
                                                                                          ‫הטמעה‬



        MapView ‫ כדי להשתמש ב‬MapActivity ‫נצטרך להרחיב את‬                                              
                       public class MyMapViewActivity extends MapActivity{

                        MapController ‫ יש מופע של‬MapView ‫למופע של‬                                     

                                        ‫באמצעותו ניתן לשלוט על המפה‬
Point point = new Point(lat.intValue(), lng.intValue());
mapController.centerMapTo(point, false);
                                                                                                      
                                                           ‫למשל למרכז אותה מסביב לנק' שלנו‬       

        ‫ של המפה‬canvas ‫ נצייר על ה‬overlayController ‫באמצעות‬                                           

    protected class MyLocationOverlay extends Overlay {
        @Override
     public void draw(Canvas canvas, PixelCalculator calculator,
    boolean shadow) {
            //... [ draw things here ] ...
        }
    }
                                                       android ‫ארכיטקטורת‬

‫ביצוע התקשרות‬                                        ‫מעגל החיים של אפליקציה‬
                                                       ‫הקמת תשתית עבודה‬
                                                           Hello World
                                                        ‫דוגמאות מתקדמות‬
                                                             ‫הטמעה‬



                  ‫נרצה אולי להתקשר לחבר על המפה‬                          

      ‫ מסוג‬intent ‫ של ההתקשרות מאזינה ל‬activity ‫ה‬                        
                                 DIAL_ACTION
                                   :‫ניזום אותה כך‬                        


     Intent i = new Intent();
     i.setAction(DIAL_ACTION);
     i.setData(new ContentURI(numbers.get(position)));
     startActivity(i);
                                                       ‫ארכיטקטורת ‪android‬‬

‫הטמעה‬                                                ‫מעגל החיים של אפליקציה‬
                                                       ‫הקמת תשתית עבודה‬
                                                           ‫‪Hello World‬‬
                                                        ‫דוגמאות מתקדמות‬
                                                             ‫הטמעה‬



             ‫מנה 3 הבדלים בין ‪ JVM‬סטנדארטי ל ‪DVM‬‬                         ‫‪‬‬

   ‫כיצד מתמודד ‪ android‬עם מעבד חלש שיכול להריץ רק‬                        ‫‪‬‬
     ‫מספר קטן של תהליכים במקביל? (קטן יחסית ל ‪)PC‬‬
                   ‫מהם ‪? Intents / Intent Receivers‬‬                      ‫‪‬‬

‫למה עדיף שה ‪ layout‬של ה ‪ UI‬יוגדר מחוץ לקוד ע"י ‪?XML‬‬                      ‫‪‬‬

      ‫תבקרו בבלוג של ‪ android – developer‬ללמוד עוד‬                       ‫‪‬‬
       ‫‪http://android-developers.blogspot.com/index.html‬‬            ‫‪‬‬

           ‫תוכלו לראות גם אפשרויות שלא קימות ב ‪J2ME‬‬                      ‫‪‬‬
                     ‫כגון הוספת ‪ widgets‬ישירות למסך הראשי‬           ‫‪‬‬

  ‫-‪http://android-developers.blogspot.com/2009/04/introducing‬‬       ‫‪‬‬
                               ‫‪home-screen-widgets-and.html‬‬
                           android ‫ארכיטקטורת‬
                         ‫מעגל החיים של אפליקציה‬
                           ‫הקמת תשתית עבודה‬
                               Hello World
                            ‫דוגמאות מתקדמות‬
                                 ‫הטמעה‬




                                       :‫מקורות‬
 http://developer.android.com/index.html •

 http://blogoscoped.com/archive/2007-11-19-n27.html   •
http://www.youtube.com/watch?v=Mm6Ju0xhUW 8 •

  http://www.youtube.com/watch?v=ITfRuRkf2TM•



   http://www.youtube.com/watch?v=iiD4fGjjXcc         •

								
To top