SlideShare ist ein Scribd-Unternehmen logo
1 von 49
Downloaden Sie, um offline zu lesen
‫برنامه نویسی در‬
                       ‫اندروید‬

                             ‫امیر بادامچی‬
‫دانشجوی کارشناسی ارشد مهندسی فناوری اطالعات – سیستمهای چند رسانهای‬


            ‫آزمایشگاه پردازش هوشمند سیگنالهای صوتی و گفتاری‬


                ‫دانشکده مهندسی کامپیوتر و فناوری اطالعات‬

                ‫دانشگاه صنعتی امیرکبیر (پلی تکنیک تهران)‬
‫عناوین مطالب‬
                                 ‫‪ ‬مروری بر اندروید‬
              ‫‪ ‬معماری و نسخههای مختلف اندروید‬
 ‫‪ ‬نصب و راهاندازی شبیهساز و ابزارهای برنامه نویسی‬
                           ‫‪ ‬نوشتن یک برنامه تست‬
                             ‫‪ ‬چرخه اجرای برنامهها‬
                             ‫‪ ‬واسط کاربری اندروید‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                ‫2‬
‫مروری بر اندروید‬
                                                      ‫معرفی‬     ‫‪‬‬
                                         ‫ویژگیها و خصوصیات‬      ‫‪‬‬
                                             ‫بازار هدف و رقبا‬   ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                              ‫3‬
‫اندروید چیست؟‬
‫مجموعه نرمافزاری شامل سیستم عامل، میانافزار و برنامههای کاربردی‬    ‫‪‬‬
                                           ‫برای تلفنهمراه و تبلت‬   ‫‪‬‬




                 ‫برنامه نویسی در اندروید – امیر بادامچی‬                ‫4‬
‫اهمیت اندروید‬
                                          ‫‪ ‬کد منبعباز‬
                               ‫‪ ‬هسته بر پایه لینوکس‬
                       ‫‪ ‬پشتیبانی از پردازندههای مختلف‬
               ‫‪ ‬پشتییانی از تمامی تکنولوژیهای اتصالی‬
               ‫‪ ‬پشتیبانی از انواع فرمتهای چند رسانهای‬
                      ‫‪ ‬پشتیبانی از کتابخانههای مختلف‬
                            ‫‪ ‬پشتیبانی از مالتیتسکینگ‬
                                ‫‪ ‬رابط کاربری مناسب‬
                                ‫‪ ‬پشتیبانی از مالتیتاچ‬

‫برنامه نویسی در اندروید – امیر بادامچی‬                   ‫5‬
‫تاریخچه اندروید‬
‫‪Open Handset Alliance‬‬   ‫ارائه اولین نسخه در سال 7002 توسط گوگل و‬   ‫‪‬‬




                 ‫برنامه نویسی در اندروید – امیر بادامچی‬                ‫6‬
‫‪Open Handset Alliance‬‬
                       ‫گروهی متشکل از 74 شرکت معتبر‬   ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                    ‫7‬
‫‪Open Handset Alliance‬‬
                       ‫گروهی متشکل از 74 شرکت معتبر‬   ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                    ‫8‬
‫رقیبان اندروید‬




‫برنامه نویسی در اندروید – امیر بادامچی‬          ‫9‬
‫معماری و نسخههای مختلف اندروید‬
                          ‫معماری اندروید و الیههای مختلف آن‬    ‫‪‬‬
                              ‫نسخههای اندروید و تغییرات آنها‬   ‫‪‬‬
                                          ‫کتابخانههای مختلف‬    ‫‪‬‬




       ‫برنامه نویسی در اندروید – امیر بادامچی‬                      ‫01‬
‫معماری اندروید‬




‫برنامه نویسی در اندروید – امیر بادامچی‬        ‫11‬
‫معماری اندروید‬
                                         ‫‪ ‬برنامههای کاربردی‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                         ‫21‬
‫معماری اندروید‬
                               ‫چارچوب برنامههای کاربردی‬       ‫‪‬‬
                 ‫سهولت و قابلیت استفاده مجدد از مولفهها‬   ‫‪‬‬
                   ‫دسترسی کامل همانند برنامههای اصلی‬      ‫‪‬‬
                                 ‫امکان جایگزینی مولفهها‬   ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                            ‫31‬
‫معماری اندروید‬
                                                       ‫چارچوب برنامههای کاربردی‬   


 Feature                                           Role
   View        Used to build an application, including lists, grids, text
  System       boxes, buttons, and embedded web browser
 Content       Enabling applications to access data from other
 Provider      applications or to share their own data
 Resource      Providing access to non-code resources (localized strings,
 Manager       graphics, and layout files)
Notification   Enabling all applications to display customer alerts in the
 Manager       status bar
 Activity      Managing the lifecycle of applications and providing
 Manager       a common navigation backstack




                        ‫برنامه نویسی در اندروید – امیر بادامچی‬                        14
‫معماری اندروید‬
                                          ‫‪ ‬کتابخانهها‬
           ‫‪ ‬مجموعهای از کتابخانهها به زبان ‪ C‬و ++‪C‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                   ‫51‬
‫معماری اندروید‬
                                                   ‫‪ ‬زمان اجرا‬
                            ‫کتابخانههای اصلی و توابع جاوا‬   ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                           ‫61‬
‫معماری اندروید‬
                                                      ‫‪ ‬زمان اجرا‬
                                   ‫‪ ‬ماشین مجازی ‪Dalvik‬‬
                               ‫محیطی برای اجرای برنامهها‬   ‫‪‬‬

                                      ‫چندین ماشین مجازی‬    ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                              ‫71‬
‫معماری اندروید‬
                                            ‫هسته لینوکس‬       ‫‪‬‬
                         ‫واسط سختافزار و الیههای باالتر‬   ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                            ‫81‬
‫نسخههای اندروید‬
‫‪‬‬   ‫‪v1.5 cupcake‬‬


‫‪‬‬   ‫‪v1.6 donut‬‬

‫‪‬‬   ‫‪v2.0/2.1 Eclair‬‬

‫‪‬‬   ‫‪V2.2 Froyo‬‬



                 ‫برنامه نویسی در اندروید – امیر بادامچی‬    ‫91‬
‫نسخههای اندروید‬
‫‪‬‬   ‫‪V2.3 ginger bread‬‬

‫‪‬‬   ‫‪v 3.0 Honeycomb‬‬


‫‪‬‬   ‫‪4.0 Ice Cream Sandwich‬‬




              ‫برنامه نویسی در اندروید – امیر بادامچی‬    ‫02‬
‫نصب و راهاندازی شبیهساز و ابزارهای برنامه نویسی‬
               ‫‪Android SDK‬‬       ‫معرفی و نصب ابزارهای پیشنیاز و‬   ‫‪‬‬
                                        ‫نصب و راهاندازی شبیهساز‬   ‫‪‬‬
                     ‫معرفی، نصب و آمادهسازی محیط برنامه نویسی‬     ‫‪‬‬




              ‫برنامه نویسی در اندروید – امیر بادامچی‬                  ‫12‬
‫معرفی و نصب ابزارهای پیشنیاز‬
                                            ‫ابزارهای مورد نیاز‬   ‫‪‬‬

                                          ‫برنامه ‪Eclipse‬‬   ‫‪‬‬

                                         ‫‪Android SDK‬‬       ‫‪‬‬

‫)‪Android Development Tools (ADT‬‬                            ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                               ‫22‬
‫معرفی و نصب ابزارهای پیشنیاز‬
                                          ‫ابزارهای مورد نیاز‬   ‫‪‬‬

                                         ‫‪ ‬برنامه ‪Eclipse‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                             ‫32‬
‫معرفی و نصب ابزارهای پیشنیاز‬
                                           ‫ابزارهای مورد نیاز‬   ‫‪‬‬

                                          ‫‪ ‬برنامه ‪Eclipse‬‬

                                         ‫‪Android SDK‬‬      ‫‪‬‬

    ‫دریافت از آدرس ‪http://developer.android.com‬‬      ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                              ‫42‬
‫معرفی و نصب ابزارهای پیشنیاز‬
                                                                ‫ابزارهای مورد نیاز‬   ‫‪‬‬

                                                              ‫‪ ‬برنامه ‪Eclipse‬‬

                                                            ‫‪Android SDK‬‬          ‫‪‬‬

                       ‫)‪Android Development Tools (ADT‬‬                           ‫‪‬‬

‫از طریق ‪ Eclipse‬و آدرس /‪https://dl-ssl.google.com/android/eclipse‬‬            ‫‪‬‬


                                               ‫دانلود ‪ ADT‬و نصب در ‪Eclipse‬‬   ‫‪‬‬




                   ‫برنامه نویسی در اندروید – امیر بادامچی‬                                ‫52‬
‫معرفی و نصب ابزارهای پیشنیاز‬
                                           ‫ابزارهای مورد نیاز‬   ‫‪‬‬

                                          ‫‪ ‬برنامه ‪Eclipse‬‬

                                         ‫‪Android SDK‬‬      ‫‪‬‬

    ‫)‪Android Development Tools (ADT‬‬                       ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                              ‫62‬
‫معرفی و نصب ابزارهای پیشنیاز‬
              ‫‪ ‬اضافه کردن آدرس دو شاخه زیر به متغیر ‪Path‬‬

                        ‫‪android-sdk-windows‬‬

                                     ‫‪platform-tools‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                      ‫72‬
‫نوشتن یک برنامه تست‬

‫...‬

‫;)‪TextView tv = new TextView(this‬‬
‫;)"‪tv.setText("Hello, Android‬‬

‫...‬




           ‫برنامه نویسی در اندروید – امیر بادامچی‬   ‫82‬
‫چرخه اجرای برنامهها‬
                    ‫هر برنامه شامل یک یا چند مولفه هست‬            ‫‪‬‬
                    ‫یک مولفه میتواند یکی از موارد زیر باشد:‬   ‫‪‬‬

                                           ‫‪Activity‬‬    ‫‪‬‬


                                           ‫‪Service‬‬     ‫‪‬‬


                            ‫‪broadcast receiver‬‬         ‫‪‬‬


                                  ‫‪content provide‬‬      ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                                ‫92‬
‫چرخه اجرای برنامهها‬
                                                ‫مهمترین کاربرد‬    ‫‪‬‬
                                              ‫برقراری تماس‬   ‫‪‬‬
                                               ‫ارسال پیامک‬   ‫‪‬‬

                                         ‫اولویت برنامههای کاربر‬   ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                                ‫03‬
‫چرخه اجرای برنامهها‬



        ‫‪Active / Inactive‬‬
‫‪Start‬‬                                            ‫‪End‬‬
        ‫‪Visible / Invisible‬‬




        ‫برنامه نویسی در اندروید – امیر بادامچی‬         ‫13‬
‫چرخه اجرای برنامهها‬
                                         ‫حالت های یک برنامه‬   ‫‪‬‬
                                             ‫‪Active‬‬     ‫‪‬‬
                                            ‫‪Paused‬‬      ‫‪‬‬
                                               ‫‪Stop‬‬     ‫‪‬‬
                                          ‫‪Destroyed‬‬     ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                            ‫23‬
‫چرخه اجرای برنامهها‬
                                                    ‫متدها‬   
                                       onCreate()       
                                         onStop()       
                                    onDestroyed()       
                                        onStart()       

                                          onRestart()   
                                         onResume()     
                                           onPause()    




‫برنامه نویسی در اندروید – امیر بادامچی‬                          33
‫واسط کاربری اندروید‬
                                            ‫کالس ‪View‬‬      ‫‪‬‬

                                         ‫‪ Layout‬چیست؟‬      ‫‪‬‬

                                          ‫انواع ‪Layout‬ها‬   ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                         ‫43‬
‫کالس ‪View‬‬
                          ‫بلوکی برای مولفههای رابط کاربری‬   ‫‪‬‬
                                                 ‫‪View‬‬       ‫‪‬‬
                    ‫‪ ‬محیطی بر روی صفحه برای رسم ‪layout‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                          ‫53‬
‫‪ Layout‬چیست؟‬
                         ‫مولفههای رابط کاربری و ارتباط آنها‬   ‫‪‬‬
                                               ‫فرمت ‪XML‬‬       ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                            ‫63‬
Layout ‫ابزارهایی برای ایجاد‬
   Eclipse ADT UI Designer
   DroidDraw
   Asset Studio




                ‫برنامه نویسی در اندروید – امیر بادامچی‬   37
Layout ‫انواع‬
   Linear
   Relative
   Table
   Absolute
   Frame




               ‫برنامه نویسی در اندروید – امیر بادامچی‬             38
‫‪Linear Layout‬‬
                             ‫تمامی فرزندان در یک جهت‬           ‫‪‬‬
                          ‫‪android:orientation‬‬                  ‫‪‬‬
                                          ‫عمودی ‪Vertical‬‬   ‫‪‬‬
                                         ‫افقی ‪horizontal‬‬   ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                             ‫93‬
). . . ‫ (ادامه‬Linear Layout
                                                  ‫ویژگیها‬    
                                         orientation     
                                           fill model    
                                               weight    
                                               gravity   
                                             padding     
                                               margin    




‫برنامه نویسی در اندروید – امیر بادامچی‬                           40
‫‪( Linear Layout‬ادامه . . .)‬
                                           ‫ویژگیها‬    ‫‪‬‬
                                         ‫‪weight‬‬   ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                    ‫14‬
). . . ‫ (ادامه‬Linear Layout
                                                            ‫ویژگیها‬    
                                                         gravity   


android:gravity="center"




android:layout_gravity="center"




                ‫برنامه نویسی در اندروید – امیر بادامچی‬                     42
‫‪( Linear Layout‬ادامه . . .)‬
                                             ‫ویژگیها‬   ‫‪‬‬
                                         ‫‪padding‬‬   ‫‪‬‬
                                          ‫‪margin‬‬   ‫‪‬‬




‫برنامه نویسی در اندروید – امیر بادامچی‬                     ‫34‬
Relative Layout
                                         ‫ویژگیها‬   
                  layout_alignParentTop      
              layout_alignParentBottom       
                  layout_alignParentLeft     
                layout_alignParentRight      
                  layout_centerInParent      
                layout_centerHorizontal      
                    layout_centerVertical    




‫برنامه نویسی در اندروید – امیر بادامچی‬                 44
Table Layout
                                               ‫ویژگیها‬   
                                     layout_width    
                                    layout_height    
                                       orientation   
                                  stretchColumns     




‫برنامه نویسی در اندروید – امیر بادامچی‬                       45
‫منابع‬
 http://www.android.com
 http://www.kamalan.com
 Slides of Victor Matos
 Slides of Mihail L. Sichitiu
 Slides of Tee Meng Kem and Sun Jian




             ‫برنامه نویسی در اندروید – امیر بادامچی‬           46
‫منابع بیشتر‬
 developer.android.com
 kamalan.com
 google.com
 and-roid.ir




             ‫برنامه نویسی در اندروید – امیر بادامچی‬                 47
‫تشکر‬
                                      ‫دکتر جابر کریمپور‬   ‫‪‬‬
                            ‫دکتر محمد مهدی همایونپور‬      ‫‪‬‬
‫اعضای آزمایشگاه پردازش هوشمند سیگنالهای صوتی و گفتاری‬     ‫‪‬‬
                                      ‫حاضرین در کارگاه‬    ‫‪‬‬




      ‫برنامه نویسی در اندروید – امیر بادامچی‬                  ‫84‬
‫پرسش و پاسخ‬



‫‪ceit.aut.ac.ir/~badamchi‬‬

‫‪amir.badamchi@gmail.com‬‬




              ‫برنامه نویسی در اندروید – امیر بادامچی‬        ‫94‬

Weitere ähnliche Inhalte

Ähnlich wie برنامه نویسی در اندروید

Navid Conference - 1394 - Shiraz, Iran
Navid Conference - 1394 - Shiraz, IranNavid Conference - 1394 - Shiraz, Iran
Navid Conference - 1394 - Shiraz, IranHamed Takmil
 
مفاهیم اولیه داکر
مفاهیم اولیه داکرمفاهیم اولیه داکر
مفاهیم اولیه داکرAli Rasoulian
 
آموزش برنامه نویسی اندروید از صفر تا صد به صورت پروژه محور برای ورود به بازار...
آموزش برنامه نویسی اندروید از صفر تا صد به صورت پروژه محور برای ورود به بازار...آموزش برنامه نویسی اندروید از صفر تا صد به صورت پروژه محور برای ورود به بازار...
آموزش برنامه نویسی اندروید از صفر تا صد به صورت پروژه محور برای ورود به بازار...elecomcoAndroidProgr
 
اندروید و برنامه نویسی اندروید
اندروید و برنامه نویسی اندرویداندروید و برنامه نویسی اندروید
اندروید و برنامه نویسی اندرویدAbbasali Mollahosyni
 
Software Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationSoftware Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationMorteza Zakeri
 
نرم‌افزارهای بازمتن، الزامات و راه‌کارهای مهاجرت
نرم‌افزارهای بازمتن، الزامات و راه‌کارهای مهاجرتنرم‌افزارهای بازمتن، الزامات و راه‌کارهای مهاجرت
نرم‌افزارهای بازمتن، الزامات و راه‌کارهای مهاجرتNasser Ghanemzadeh
 
امنیت استفاده از نرم افزارهای متن باز در نیازهای کلان
امنیت استفاده از نرم افزارهای متن باز در نیازهای کلانامنیت استفاده از نرم افزارهای متن باز در نیازهای کلان
امنیت استفاده از نرم افزارهای متن باز در نیازهای کلانAli Yazdani
 
oCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsoCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsMorteza Javan
 
AOSD توسعه نرم افزار جنبه گرا
AOSD توسعه نرم افزار جنبه گراAOSD توسعه نرم افزار جنبه گرا
AOSD توسعه نرم افزار جنبه گراOmid Rajabi
 
android_test_approach
android_test_approachandroid_test_approach
android_test_approachSadegh Saberi
 

Ähnlich wie برنامه نویسی در اندروید (12)

Navid Conference - 1394 - Shiraz, Iran
Navid Conference - 1394 - Shiraz, IranNavid Conference - 1394 - Shiraz, Iran
Navid Conference - 1394 - Shiraz, Iran
 
مفاهیم اولیه داکر
مفاهیم اولیه داکرمفاهیم اولیه داکر
مفاهیم اولیه داکر
 
آموزش برنامه نویسی اندروید از صفر تا صد به صورت پروژه محور برای ورود به بازار...
آموزش برنامه نویسی اندروید از صفر تا صد به صورت پروژه محور برای ورود به بازار...آموزش برنامه نویسی اندروید از صفر تا صد به صورت پروژه محور برای ورود به بازار...
آموزش برنامه نویسی اندروید از صفر تا صد به صورت پروژه محور برای ورود به بازار...
 
اندروید و برنامه نویسی اندروید
اندروید و برنامه نویسی اندرویداندروید و برنامه نویسی اندروید
اندروید و برنامه نویسی اندروید
 
Software Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationSoftware Fault Avoidance in Implementation
Software Fault Avoidance in Implementation
 
نرم‌افزارهای بازمتن، الزامات و راه‌کارهای مهاجرت
نرم‌افزارهای بازمتن، الزامات و راه‌کارهای مهاجرتنرم‌افزارهای بازمتن، الزامات و راه‌کارهای مهاجرت
نرم‌افزارهای بازمتن، الزامات و راه‌کارهای مهاجرت
 
امنیت استفاده از نرم افزارهای متن باز در نیازهای کلان
امنیت استفاده از نرم افزارهای متن باز در نیازهای کلانامنیت استفاده از نرم افزارهای متن باز در نیازهای کلان
امنیت استفاده از نرم افزارهای متن باز در نیازهای کلان
 
Introduction to Kaa IoT platform
Introduction to Kaa IoT platformIntroduction to Kaa IoT platform
Introduction to Kaa IoT platform
 
oCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsoCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_Patterns
 
AOSD توسعه نرم افزار جنبه گرا
AOSD توسعه نرم افزار جنبه گراAOSD توسعه نرم افزار جنبه گرا
AOSD توسعه نرم افزار جنبه گرا
 
android_test_approach
android_test_approachandroid_test_approach
android_test_approach
 
Resume
ResumeResume
Resume
 

برنامه نویسی در اندروید

  • 1. ‫برنامه نویسی در‬ ‫اندروید‬ ‫امیر بادامچی‬ ‫دانشجوی کارشناسی ارشد مهندسی فناوری اطالعات – سیستمهای چند رسانهای‬ ‫آزمایشگاه پردازش هوشمند سیگنالهای صوتی و گفتاری‬ ‫دانشکده مهندسی کامپیوتر و فناوری اطالعات‬ ‫دانشگاه صنعتی امیرکبیر (پلی تکنیک تهران)‬
  • 2. ‫عناوین مطالب‬ ‫‪ ‬مروری بر اندروید‬ ‫‪ ‬معماری و نسخههای مختلف اندروید‬ ‫‪ ‬نصب و راهاندازی شبیهساز و ابزارهای برنامه نویسی‬ ‫‪ ‬نوشتن یک برنامه تست‬ ‫‪ ‬چرخه اجرای برنامهها‬ ‫‪ ‬واسط کاربری اندروید‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫2‬
  • 3. ‫مروری بر اندروید‬ ‫معرفی‬ ‫‪‬‬ ‫ویژگیها و خصوصیات‬ ‫‪‬‬ ‫بازار هدف و رقبا‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫3‬
  • 4. ‫اندروید چیست؟‬ ‫مجموعه نرمافزاری شامل سیستم عامل، میانافزار و برنامههای کاربردی‬ ‫‪‬‬ ‫برای تلفنهمراه و تبلت‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫4‬
  • 5. ‫اهمیت اندروید‬ ‫‪ ‬کد منبعباز‬ ‫‪ ‬هسته بر پایه لینوکس‬ ‫‪ ‬پشتیبانی از پردازندههای مختلف‬ ‫‪ ‬پشتییانی از تمامی تکنولوژیهای اتصالی‬ ‫‪ ‬پشتیبانی از انواع فرمتهای چند رسانهای‬ ‫‪ ‬پشتیبانی از کتابخانههای مختلف‬ ‫‪ ‬پشتیبانی از مالتیتسکینگ‬ ‫‪ ‬رابط کاربری مناسب‬ ‫‪ ‬پشتیبانی از مالتیتاچ‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫5‬
  • 6. ‫تاریخچه اندروید‬ ‫‪Open Handset Alliance‬‬ ‫ارائه اولین نسخه در سال 7002 توسط گوگل و‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫6‬
  • 7. ‫‪Open Handset Alliance‬‬ ‫گروهی متشکل از 74 شرکت معتبر‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫7‬
  • 8. ‫‪Open Handset Alliance‬‬ ‫گروهی متشکل از 74 شرکت معتبر‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫8‬
  • 9. ‫رقیبان اندروید‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫9‬
  • 10. ‫معماری و نسخههای مختلف اندروید‬ ‫معماری اندروید و الیههای مختلف آن‬ ‫‪‬‬ ‫نسخههای اندروید و تغییرات آنها‬ ‫‪‬‬ ‫کتابخانههای مختلف‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫01‬
  • 11. ‫معماری اندروید‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫11‬
  • 12. ‫معماری اندروید‬ ‫‪ ‬برنامههای کاربردی‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫21‬
  • 13. ‫معماری اندروید‬ ‫چارچوب برنامههای کاربردی‬ ‫‪‬‬ ‫سهولت و قابلیت استفاده مجدد از مولفهها‬ ‫‪‬‬ ‫دسترسی کامل همانند برنامههای اصلی‬ ‫‪‬‬ ‫امکان جایگزینی مولفهها‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫31‬
  • 14. ‫معماری اندروید‬ ‫چارچوب برنامههای کاربردی‬  Feature Role View Used to build an application, including lists, grids, text System boxes, buttons, and embedded web browser Content Enabling applications to access data from other Provider applications or to share their own data Resource Providing access to non-code resources (localized strings, Manager graphics, and layout files) Notification Enabling all applications to display customer alerts in the Manager status bar Activity Managing the lifecycle of applications and providing Manager a common navigation backstack ‫برنامه نویسی در اندروید – امیر بادامچی‬ 14
  • 15. ‫معماری اندروید‬ ‫‪ ‬کتابخانهها‬ ‫‪ ‬مجموعهای از کتابخانهها به زبان ‪ C‬و ++‪C‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫51‬
  • 16. ‫معماری اندروید‬ ‫‪ ‬زمان اجرا‬ ‫کتابخانههای اصلی و توابع جاوا‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫61‬
  • 17. ‫معماری اندروید‬ ‫‪ ‬زمان اجرا‬ ‫‪ ‬ماشین مجازی ‪Dalvik‬‬ ‫محیطی برای اجرای برنامهها‬ ‫‪‬‬ ‫چندین ماشین مجازی‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫71‬
  • 18. ‫معماری اندروید‬ ‫هسته لینوکس‬ ‫‪‬‬ ‫واسط سختافزار و الیههای باالتر‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫81‬
  • 19. ‫نسخههای اندروید‬ ‫‪‬‬ ‫‪v1.5 cupcake‬‬ ‫‪‬‬ ‫‪v1.6 donut‬‬ ‫‪‬‬ ‫‪v2.0/2.1 Eclair‬‬ ‫‪‬‬ ‫‪V2.2 Froyo‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫91‬
  • 20. ‫نسخههای اندروید‬ ‫‪‬‬ ‫‪V2.3 ginger bread‬‬ ‫‪‬‬ ‫‪v 3.0 Honeycomb‬‬ ‫‪‬‬ ‫‪4.0 Ice Cream Sandwich‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫02‬
  • 21. ‫نصب و راهاندازی شبیهساز و ابزارهای برنامه نویسی‬ ‫‪Android SDK‬‬ ‫معرفی و نصب ابزارهای پیشنیاز و‬ ‫‪‬‬ ‫نصب و راهاندازی شبیهساز‬ ‫‪‬‬ ‫معرفی، نصب و آمادهسازی محیط برنامه نویسی‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫12‬
  • 22. ‫معرفی و نصب ابزارهای پیشنیاز‬ ‫ابزارهای مورد نیاز‬ ‫‪‬‬ ‫برنامه ‪Eclipse‬‬ ‫‪‬‬ ‫‪Android SDK‬‬ ‫‪‬‬ ‫)‪Android Development Tools (ADT‬‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫22‬
  • 23. ‫معرفی و نصب ابزارهای پیشنیاز‬ ‫ابزارهای مورد نیاز‬ ‫‪‬‬ ‫‪ ‬برنامه ‪Eclipse‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫32‬
  • 24. ‫معرفی و نصب ابزارهای پیشنیاز‬ ‫ابزارهای مورد نیاز‬ ‫‪‬‬ ‫‪ ‬برنامه ‪Eclipse‬‬ ‫‪Android SDK‬‬ ‫‪‬‬ ‫دریافت از آدرس ‪http://developer.android.com‬‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫42‬
  • 25. ‫معرفی و نصب ابزارهای پیشنیاز‬ ‫ابزارهای مورد نیاز‬ ‫‪‬‬ ‫‪ ‬برنامه ‪Eclipse‬‬ ‫‪Android SDK‬‬ ‫‪‬‬ ‫)‪Android Development Tools (ADT‬‬ ‫‪‬‬ ‫از طریق ‪ Eclipse‬و آدرس /‪https://dl-ssl.google.com/android/eclipse‬‬ ‫‪‬‬ ‫دانلود ‪ ADT‬و نصب در ‪Eclipse‬‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫52‬
  • 26. ‫معرفی و نصب ابزارهای پیشنیاز‬ ‫ابزارهای مورد نیاز‬ ‫‪‬‬ ‫‪ ‬برنامه ‪Eclipse‬‬ ‫‪Android SDK‬‬ ‫‪‬‬ ‫)‪Android Development Tools (ADT‬‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫62‬
  • 27. ‫معرفی و نصب ابزارهای پیشنیاز‬ ‫‪ ‬اضافه کردن آدرس دو شاخه زیر به متغیر ‪Path‬‬ ‫‪android-sdk-windows‬‬ ‫‪platform-tools‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫72‬
  • 28. ‫نوشتن یک برنامه تست‬ ‫...‬ ‫;)‪TextView tv = new TextView(this‬‬ ‫;)"‪tv.setText("Hello, Android‬‬ ‫...‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫82‬
  • 29. ‫چرخه اجرای برنامهها‬ ‫هر برنامه شامل یک یا چند مولفه هست‬ ‫‪‬‬ ‫یک مولفه میتواند یکی از موارد زیر باشد:‬ ‫‪‬‬ ‫‪Activity‬‬ ‫‪‬‬ ‫‪Service‬‬ ‫‪‬‬ ‫‪broadcast receiver‬‬ ‫‪‬‬ ‫‪content provide‬‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫92‬
  • 30. ‫چرخه اجرای برنامهها‬ ‫مهمترین کاربرد‬ ‫‪‬‬ ‫برقراری تماس‬ ‫‪‬‬ ‫ارسال پیامک‬ ‫‪‬‬ ‫اولویت برنامههای کاربر‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫03‬
  • 31. ‫چرخه اجرای برنامهها‬ ‫‪Active / Inactive‬‬ ‫‪Start‬‬ ‫‪End‬‬ ‫‪Visible / Invisible‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫13‬
  • 32. ‫چرخه اجرای برنامهها‬ ‫حالت های یک برنامه‬ ‫‪‬‬ ‫‪Active‬‬ ‫‪‬‬ ‫‪Paused‬‬ ‫‪‬‬ ‫‪Stop‬‬ ‫‪‬‬ ‫‪Destroyed‬‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫23‬
  • 33. ‫چرخه اجرای برنامهها‬ ‫متدها‬  onCreate()  onStop()  onDestroyed()  onStart()  onRestart()  onResume()  onPause()  ‫برنامه نویسی در اندروید – امیر بادامچی‬ 33
  • 34. ‫واسط کاربری اندروید‬ ‫کالس ‪View‬‬ ‫‪‬‬ ‫‪ Layout‬چیست؟‬ ‫‪‬‬ ‫انواع ‪Layout‬ها‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫43‬
  • 35. ‫کالس ‪View‬‬ ‫بلوکی برای مولفههای رابط کاربری‬ ‫‪‬‬ ‫‪View‬‬ ‫‪‬‬ ‫‪ ‬محیطی بر روی صفحه برای رسم ‪layout‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫53‬
  • 36. ‫‪ Layout‬چیست؟‬ ‫مولفههای رابط کاربری و ارتباط آنها‬ ‫‪‬‬ ‫فرمت ‪XML‬‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫63‬
  • 37. Layout ‫ابزارهایی برای ایجاد‬  Eclipse ADT UI Designer  DroidDraw  Asset Studio ‫برنامه نویسی در اندروید – امیر بادامچی‬ 37
  • 38. Layout ‫انواع‬  Linear  Relative  Table  Absolute  Frame ‫برنامه نویسی در اندروید – امیر بادامچی‬ 38
  • 39. ‫‪Linear Layout‬‬ ‫تمامی فرزندان در یک جهت‬ ‫‪‬‬ ‫‪android:orientation‬‬ ‫‪‬‬ ‫عمودی ‪Vertical‬‬ ‫‪‬‬ ‫افقی ‪horizontal‬‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫93‬
  • 40. ). . . ‫ (ادامه‬Linear Layout ‫ویژگیها‬  orientation  fill model  weight  gravity  padding  margin  ‫برنامه نویسی در اندروید – امیر بادامچی‬ 40
  • 41. ‫‪( Linear Layout‬ادامه . . .)‬ ‫ویژگیها‬ ‫‪‬‬ ‫‪weight‬‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫14‬
  • 42. ). . . ‫ (ادامه‬Linear Layout ‫ویژگیها‬  gravity  android:gravity="center" android:layout_gravity="center" ‫برنامه نویسی در اندروید – امیر بادامچی‬ 42
  • 43. ‫‪( Linear Layout‬ادامه . . .)‬ ‫ویژگیها‬ ‫‪‬‬ ‫‪padding‬‬ ‫‪‬‬ ‫‪margin‬‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫34‬
  • 44. Relative Layout ‫ویژگیها‬  layout_alignParentTop  layout_alignParentBottom  layout_alignParentLeft  layout_alignParentRight  layout_centerInParent  layout_centerHorizontal  layout_centerVertical  ‫برنامه نویسی در اندروید – امیر بادامچی‬ 44
  • 45. Table Layout ‫ویژگیها‬  layout_width  layout_height  orientation  stretchColumns  ‫برنامه نویسی در اندروید – امیر بادامچی‬ 45
  • 46. ‫منابع‬  http://www.android.com  http://www.kamalan.com  Slides of Victor Matos  Slides of Mihail L. Sichitiu  Slides of Tee Meng Kem and Sun Jian ‫برنامه نویسی در اندروید – امیر بادامچی‬ 46
  • 47. ‫منابع بیشتر‬  developer.android.com  kamalan.com  google.com  and-roid.ir ‫برنامه نویسی در اندروید – امیر بادامچی‬ 47
  • 48. ‫تشکر‬ ‫دکتر جابر کریمپور‬ ‫‪‬‬ ‫دکتر محمد مهدی همایونپور‬ ‫‪‬‬ ‫اعضای آزمایشگاه پردازش هوشمند سیگنالهای صوتی و گفتاری‬ ‫‪‬‬ ‫حاضرین در کارگاه‬ ‫‪‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫84‬
  • 49. ‫پرسش و پاسخ‬ ‫‪ceit.aut.ac.ir/~badamchi‬‬ ‫‪amir.badamchi@gmail.com‬‬ ‫برنامه نویسی در اندروید – امیر بادامچی‬ ‫94‬