خانه / آموزش / آموزش زبان برنامه نویسی اندروید – قسمت اول

آموزش زبان برنامه نویسی اندروید – قسمت اول

از این پس برنامه اندروید برای موبایلتان را خودتان بنویسید.
زبان اندروید
قسمت اول:
در این دوره از آموزش، در نظر است تا روش برنامه نویس اندروید، آموزش داده شود. اگر مو به مو آموزش را مطالعه کنید و بطور گزینه ای و سلیقه ای اقدام به آموزش نکنید، حتما می توانید موفق شوید.
راه طولانی برای این آموزش در پیش دارید. پس اگر می خواهید همگام با واحد سایبری کانون دانش پژوهان طلیعه ایرانیان، این آموزش را تکمیل کنید، با ما باشید.

از برخی از اصطلاحات وحشت نداشته باشید. کم کم با تمام این واژه ها آشنا می شوید.
آشنایی اولیه:
اندروید مجموعه ای از نرم افزارهای (software stack) موبایل است که شامل سیستم عامل، middleware ها و برنامه های کلیدی (key applications) است. اندروید SDK، ابزارها و APIهای لازم برای شروع برنامه نویسی بر روی پلتفرم اندروید با زبان برنامه نویسی جاوا را مهیا کرده است.
اندروید به همراه بسته های مختلفی از جمله email client, SMS program, calendar, maps, browser, contacts, and others ارایه میشود. تمام این برنامه ها با استفاده از زبان برنامه نویسی جاوا نوشته شده اند.
با فراهم آوردن پلتفرم توسعه باز (open development platform)، اندروید برنامه سازان را قادر کرده است تا برنامه های کاربردی خلاقانه و غنی برای این پلت فرم فراهم سازند. توسعه دهندگان آزادی کامل دارند تا از ویژگیهایی مانند دسترسی به سخت افزار، دسترسی به اطلاعات محلی (موقیت جغرافیایی)، اجرای سرویس های پس زمینه (background services)، تنظیم زنگ ساعت، اضافه کردن اطلاعیه ها (notifications) به نوار وضعیت و بسیاری بسیاری دیگر در برنامه هایی که میسازند، استفاده کنند.
توسعه دهندگان، دسترسی کامل به همان چارچوب APIهایی دارند که برنامه های هسته (the core applications) دارند. معماری برنامه های کاربردی (The application architecture) بمنظور ساده سازی استفاده مجدد از کامپوننت ها طراحی شده است. هر برنامه ای می تواند قابلیت های خود را در اختیار دیگر برنامه ها قرار دهد و همچنین از قابلیت های دیگر برنامه ها استفاده کند (البته به محدودیت های امنیتی چارچوب هم بستگی دارد). این طرزکار مشابه به کاربر اختیار تعویض و جایگزینی کامپوننت ها را می دهد.
برنامه های زیربنایی، مجموعه ای از سرویس ها و سیستم های زیرند:
مجموعه قابل گسترشی از View ها که برای ساخت برنامه های کاربردی استفاده می شوند، مانند lists, grids, text boxes, buttons, and even an embeddable web browser
Content Providers، که برنامه ها را قادر میسازد تا به اطلاعات برنامه های دیگر مانند لیست تماس، دسترسی پیدا کنند یا حتی اجازه دسترسی به اطلاعات خود را به برنامه های دیگر دهند.
یک مدیر منابع (Resource Manager) اجازه دسترسی به منابعی که کد-برنامه نیستند را فراهم میکند مانند دسترسی به رشته های محلی (localized strings)، تصاویر و فایل های مربوط به طرح برنامه (layout files).
یک مدیر اطاعیه (Notification Manager)، که از این طریق برنامه ها را قادر میکند تا هشدارهای خود را در نوار وضعیت نشان دهند.
یک مدیر فعالیت (Activity Manager)، که مدریت چرخه زندگی (lifecycle) برنامه ها را در دست دارد و به نحوه اجرای برنامه ها نظارت میکند.

اندروید شامل مجموعه از کلاسهای ++C/C است که توسط کامپوننت های سیستم اندروید مورد استفاده قرار میگیرند. همچنین استفاده از این قابلیت به توسعه دهندگان نیز داده شده است. بعضی از این کتابخانه های اصلی به این قرارند:
System C library – a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
Media Libraries – based on PacketVideo’s OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
Surface Manager – manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications
LibWebCore – a modern web browser engine which powers both the Android browser and an embeddable web view
SGL – the underlying 2D graphics engine
۳D libraries – an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer
FreeType – bitmap and vector font rendering
SQLite – a powerful and lightweight relational database engine available to all applications
اندروید متکی بر لینوکس نسخه ۲٫۶ برای انجام سرویس های اصلی مانند security, memory management, process management, network stack و driver model است. این هسته همچنین مانند یک لایه انتزاعی (abstraction layer) مابین سخت افزار و سایر نرم افزارها عمل میکند.

توانایی ها:
چارچوب برنامه (Application framework): امکان استفاده مجدد و جایگزینی کامپوننت ها را فراهم میکند.
ماشین مجازی دالویک (Dalvik virtual machine): وظیفه بهینه سازی کدها برای اجرا بر روی موبایل را دارد.
مرورگر داخلی (Integrated browser): منطبق بر موتور WebKit منبع باز
گرافیک بهینه شده (Optimized graphics): قدرت گرفته از کتابخانه ۲D، گرافیک ۳D منطبق بر OpenGL ES 1.0 (شتاب دهنده سخت افزاری)
SQLite: برای ذخیره اطلاعات
پشتیبانی از رسانه (Media support): با پشتیبانی از فرمتهای رایج صوتی، ویدئویی و عکس (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
مکالمات تلفنی (GSM Telephony): (وابسته به نوع سخت افزار)
Bluetooth, EDGE, 3G, and WiFi: (وابسته به نوع سخت افزار)
دوربین، GPS، قطب نما و شتاب سنج: (وابسته به نوع سخت افزار) 

محیط توسعه غنی (Rich development environment): شامل ایمولاتور، ابزارهای دیباگ کردن، پروفایل کردن حافظه و پلاگین برای محیط توسعه اکلیپس.

الزامات شروع بکار:

باید قبل از اینکه شروع کنیم، چند مطلبی که باید قبل از این درس ها تجربه کرده باشید رو مطرح کنم، ولی حالا اگه همه ی این مهارت ها رو هم ندارید و فقط می خواهید یه امتحانی بکنید اشکالی نداره، ولی خودم سعی می کنم همیشه برای آموزش دیدن، همی شرایط اولیه رو برای آموزش پایه ایجاد کنم.
ولی به طور قطع یک چیزی که حتما باید قبل از این آموزش بلد باشید اینه که تجربه کار با برنامه نویسی شی گرا رو داشته باشید. اندروید خیلی زیاد و سنگین از این مفاهیم استفاده می کنه، پس اینکه بدونید یه کلاس چیه و اینکه ارتباط نرم افزاری چه مفهومی داره و از این قبیل، به شما کمک شایانی می کند برای اینکه تو زمینه اندروید موفق باشید
حالا شما باید تجربه هایی از کار با جاوا داشته باشید. هر چقدر هم بیشتر جاوا بلد باشید این دوره (درس) رو خیلی راحتتر پیش میبرید
حالا مطلب دیگه ای که میتونه خیلی براتون مفید باشه آشنایی با محیط توسعه ایکلیپسه. چون همه ابزارهای اندروید از طرف گوگل روی ایکلیپس پایه گذاری شده.
اگه قبلا با ایکلیپس کار کرده باشید این دوره براتون راحتتر میشه ولی اگه بلد نیستید نگران نباشید، طوری آموزش خواهم داد که این دوره را با موفقیت طی کنید.
در این آموزش، نوشتن زبان اندوید را بر سیستم ویندوز آموزش میدم و اگه عمری باقی موند و متقاضی بسیار، بر روی سیتم مک نیز آموزش خواهم داد
ابتدا باید نرم افزار ضروری SDK را برای سیستم ویندوز دانلود کنید
دانلود “بسته توسعه نرم افزار” یا SDK، برای ایران تحریم شده و با IP ایرانی به شما اجازه ورود به سایت اصلی ارایه دهنده SDK رو نمیده به همین خاطر جدیدترین نسخه اش رو در ادامه برای دانلود گذاشتم
اینم لینک نرم افزار
http://downloads.puresoftware.org/…/installer_r23.0.2-windo…
اگه براتون دانلود فایل با شاخص exe میسر نیست، از لینک زیر استفاده کنید که شاخص اون زیپ هستش
http://downloads.puresoftware.org/…/android-sdk_r23.0.2-win…
برای استفاده از SDK اندروید به برنامه (JDK (Java Development Kit احتیاج دارید و باید اول JDK را نصب کنید و سپس SDK اندروید نصب شود.
برنامه JDK برای ویندوز ۳۲ بیت رو از لینک زیر دانلود کنید
http://cld.persiangig.com/…/FdUk5…/jdk-7u51-windows-i586.exe
برنامه JDK برای ویندوز ۶۴ بیت رو از لینک زیر دانلود کنید
http://cld.persiangig.com/…/IyVcaY…/jdk-7u51-windows-x64.exe
فایل ها رو پس از دانلود، به ترتیبی که گفته شد نصب کنید . پیش فرض ها رو عوض کنید.
تاکید می کنم……….
اول باید فایل JDK رو نصب کنید و بعد SDK
وقتی SDK رو نصب می کنید، خودش برنامه JDK رو پیدا می کنه
نهایتا هم در حالی که تیک این گزینه “Start SDK Manager” خورده روی Finish کلیک میکنید.
حالا SKD Manager اجرا میشه و شروع می کنه به گرفتن (fetching) اطلاعاتی که لازمه دانلود کنید، ولی چون تحریم شدیم ممکنه پیغام خطا بده که نتونست fetching رو کامل انجام بده یا هیچ پیغامی نده. اگر برنامه ای خواست و نتونستید دانلود کنید، اعلام کنید تا لینکش رو براتون بزارم

برنامه SDK Manager رو اجرا کنید (بهتره راست کلیک کنید و گزینه Run as administrator رو انتخاب کنید)
وقتی SDK Manager رو باز می‌کنی خودش میره دنبال بسته های دردسترس و لیستش رو نشون می ده، و چون گوگل ایران رو تحریم کرده با IP ایرانی لیست رو براتون نشون نمی ده ولی فایلی که لازمه دانلود کنید رو در ادامه براتون گذاشتم.
هر کدوم از نسخه های SDK مخصوص یک نسخه از اندرویده مثلا gingerbread یعنی Android 2.3.3 و یا Froyo یعنی Android 2.2…
وقتی SDK رو دانلود کردید برای ادامه‌ی کار باید پوشه ی platform-tools رو هم داخل فولدر مربوط به SDK Manager رو قرار بدید (کنار فولدر platforms و tools و ….) و یادتون باشه از حالت فشرده (zip) خارج کنید.
http://downloads.puresoftware.org/…/platform-tools_r20-wind…
و همین طور باید فولدری به نام build-tools ایجاد کنید (در محلی که SDK رو ذخیره کردید) و build-tools مربوط به سیستم عاملتون رو دانلود کنید و از حالت فشرده خارج کنید و بذارید تو فولدر build-tools ای که الان ایجاد کردید. اینجا برای سیستم عامل ویندوز لینکش رو گذاشتم.
http://downloads.puresoftware.org/…/build-tools_r20-windows…
با توجه به نرم افزاری که می خواید بنویسید باید یکی از نسخه های اندروید رو دانلود کنید، اگه ویژگی خاصی که مربوط به نسخه های بالاتر نیست توی برنامتون قرار نیست استفاده کنید، پیشنهاد میشه SDK platform Android 2.1 رو دانلود کنید تا تعداد کاربران بیشتری بتونن از برنامتون استفاده کنن.
(مثلا اگه برنامتون رو با Android 2.3.3 بسازید، کسانی که Android 2.2 دارن (یا مدل پایین تر) نمی تونن از برنامه شما استفاده کنن پس اگه ویژگی خاصی از نسخه ی بهتر رو استفاده نکردید، Android 2.1 رو دانلود کنید)
API-7 که مربوط به Android 2.1 هست، API-8 که مربوط به Android 2.2 هست و API-10 که مربوط به Android 2.3 هست و … رو براتون آماده دانلود کردم :
دانلود API-7 [حجم ۶۷ مگابایت] http://downloads.puresoftware.org/…/andro…/API/android-7.zip
دانلود API-8 [حجم ۷۴ مگابایت] http://downloads.puresoftware.org/…/andro…/API/android-8.zip
دانلود API-10 [حجم ۸۲ مگابایت] http://bayanbox.ir/id/4496516561551647603?download
دانلود API-11 [حجم ۱۰۰ مگابایت] http://downloads.puresoftware.org/…/andr…/API/android-11.zip
دانلود API-13 [حجم ۱۰۳ مگابایت] http://downloads.puresoftware.org/…/andr…/API/android-13.zip
دانلود API-14 [حجم ۴۴ مگابایت] http://downloads.puresoftware.org/…/andr…/API/android-14.zip
دانلود API-15 [حجم ۴۳ مگابایت] http://bayanbox.ir/id/5891787877329790663?download
دانلود API-16 [حجم ۴۶ مگابایت] http://bayanbox.ir/id/3218438412050103578?download
دانلود API-17 [حجم ۴۶ مگابایت] http://downloads.puresoftware.org/…/andr…/API/android-17.zip
دانلود API-18 [حجم ۴۷ مگابایت] http://bayanbox.ir/id/9088800860509484716?download
دانلود API-19 [حجم ۶۱ مگابایت] http://downloads.puresoftware.org/…/andr…/API/android-19.zip
برای استفاده از این بسته ها باید بعد از دانلود از حالت zip خارجشون کنید و داخل فولدر platforms در پوشه‌ی مربوط به SDK بذارید. مثلا در مسیر C:Program FilesAndroidandroid-sdkplatforms، قرار گذاشته بشه (اگه وجود نداره خودتون یه فولدر با این اسم بسازید) و بعد فولدر دانلود شده رو داخلش قرار بدید.
در ضمن اگه تمایل دارید Sample رو هم دانلود کنید، چون حاوی یک پروژه ی مثال از خود شرکت گوگل هست که می‌تونه خیلی کمکتون کنه:
این لینکها به سادگی بدست نیومده. قدرشو بدونید.
دانلود API-7 Samples [حجم ۷ مگابایت] http://downloads.puresoftware.org/…/a…/samples/android-7.zip
دانلود API-8 Samples [حجم ۷ مگابایت] http://downloads.puresoftware.org/…/a…/samples/android-8.zip
دانلود API-11 Samples [حجم ۱۱ مگابایت] http://downloads.puresoftware.org/…/…/samples/android-11.zip
دانلود API-12 Samples [حجم ۱۲ مگابایت] http://downloads.puresoftware.org/…/…/samples/android-12.zip
دانلود API-13 Samples [حجم ۱۲ مگابایت] http://downloads.puresoftware.org/…/…/samples/android-13.zip
دانلود API-14 Samples [حجم ۱۵ مگابایت] http://downloads.puresoftware.org/…/…/samples/android-14.zip
دانلود API-15 Samples [حجم ۱۵ مگابایت] http://downloads.puresoftware.org/…/…/samples/android-15.zip
دانلود API-16 Samples [حجم ۱۴ مگابایت] http://downloads.puresoftware.org/…/…/samples/android-16.zip
دانلود API-17 Samples [حجم ۱۴ مگابایت] http://downloads.puresoftware.org/…/…/samples/android-17.zip
دانلود API-18 Samples [حجم ۱۹ مگابایت] http://downloads.puresoftware.org/…/…/samples/android-18.zip
دانلود API-19 Samples [حجم ۲۸ مگابایت] http://downloads.puresoftware.org/…/…/samples/android-19.zip
برای استفاده از این بسته ها باید بعد از دانلود از حالت zip خارجشون کنید و داخل فولدر samples در پوشه‌ی مربوط به SDK بذارید. مثلا فولدر samples باید در مسیر C:Program FilesAndroidandroid-sdksamples، قرار داده بشه (اگه وجود نداره خودتون یه فولدر با این اسم بسازید) و بعد فولدر دانلود شده رو داخلش قرار بدید.
وقتی بسته های مورد نظرتون رو دانلود کردید، دوباره SDK Manager رو اجرا کنید.

آموزش ها همچنان ادامه دارند.
فرزین نجفی پور: مدیرعامل شرکت دانش پژوهان طلیعه ایرانیان

درباره ی فرزین نجفی پور

پژوهشگر برتر کشور در چند سال متوالی - مخترع برتر کشور - ثبت 61 اختراع کاربردی در زمینه های کشاورزی، آبیاری، الکترونیک، رباتیک و هوا فضا - دارای مدرک کارشناسی ارشد - ارایه بیش از 100 مقاله علمی - دریافت دهها تندیس ویژه علمی - دریافت بیش از 150 تقدیر نامه از وزارت خانه ها و مراکز علمی و پژوهشی - برپایی بیش از 150 نمایشگاه تخصصی اختراعات - پیشگام در دفاع سایبری عملی از حریم جمهوری اسلامی ایران

همچنین ببینید

چگونه پوست صورت خود را زیبا کنیم؟

اسیدهای میوه کارکردهای بسیاری برای پوست دارند. آنها می توانند همه کاربرای زیبایی پوست انجام دهند؛ ...