آموزش برنامه نویسی برای اندروید با ایکلیپس(1)- تاریخچه اَندروید و نسخه های آن
منبع: راسخون
در اوت ۲۰۰۵، گوگل شرکت اندروید را خرید. شرکت کوچک اندروید که توسط اندی رابین، ریچ ماینرز، نیک سیرز و کریس وایت پایهگذاری شده بود، در زمینه تولید نرمافزار و برنامههای کاربردی برای تلفنهای همراه فعالیت میکرد. در سال 2007 تعدادی از شرکت های تجهیزات الکترونیکی مانند موبایل و یکسری از شرکت های نرم افزاری مانند گوگل با هم جمع شدند و ابتدا تعداد آنها 34 عضو بوده و بعد ها به تعداد آنها اضافه شد. این اعضا در کنار هم کنسرسیومی را تشکیل داده اند که در راس آنها گوگل بوده و هدف آنها ایجاد یک سیستم عامل متن باز بوده است. این کنسرسیوم ((Open Handset Alliance OHAنام داشت.
می توانید اطلاعات بیشتر درباره ی این گروه را در سایت زیر مشاهده کنید:
www.openhandsetalliance.com
این کنسرسیوم SDK را منتشر ساخته که دربرگیرنده ی ابزارهای نرم افزاری مورد نیاز برای توسعه ی اپلیکیشن های اندروید بوده. SDK در واقع مخفف software Development Kit می باشد و به معنی پکیج توسعه ی نرم افزار می باشد. نسخه های sdk را می توان از سایت زیر دانلود کرد:
http://developer.android.com
در سال 2008 اولین گوشی موبایل با سیستم عامل اندروید به نام T-Mobile G1 از شرکت HTC به بازار آمد. بعد از آن شرکل های زیادی از این سیتم عامل استفاده کردند و ابزار های الکترونیکی خود را با این سیستم عامل طراحی کردند.
ویژگی های اندروید
1. اندروید تمامی تکنولوژیهای اتصال (=Connectivity) شامل GSM/EDGE, CDMA, EV-DO, UMTS, بلوتوث و وای- فای را پشتیبانی میکند.2. اندروید از فرمتهای مختلف فایلهای مالتی مدیا مثل MPEG-۴, H.۲۶۴, MP3, AAC, AMR, JPEG, PNG, GIF پشتیبانی میکند.
3. اندروید برای ارسال پیغامهای متنی یا همان اس ام اس (SMS) از فرمهای SMS, MMS و XMPP پشتیبانی میکند.
4. مرورگر موجود در اندروید بر اساس فریم ورک اوپن سورس WebKit توسعه یافتهاست.
5. اندروید برای ذخیره دادهها و مدیریت بانکهای اطلاعاتی سبک از نرمافزار SQLite استفاده میکند.
6. تمام برنامههای اندروید به زبان جاوا نوشته میشوند. برای اجرای برنامههای جاوایی روی این سیستم عامل، کدهای جاوا به کدهای Dalvik تبدیل میشوند و سپس روی ماشین مجازی جاوایی (Dalvik virtual machine) اجرا میشوند.
7. ابزارهای مختلف اندروید برای توسعه دهندگان به راحتی در دسترس است و توسط شرکت گوگل پشتیبانی میشوند. این ابزارها شامل کتابخانهها، خطایاب، شبیهساز گوشی و یک پلاگین برای اکلیپس است.
8. اندروید از سختافزارهای مختلف همچون جی پی اس و دوربینهای متنوع پشتیبانی میکند.
9. تصاویر و فایلهای گرافیکی بوسیله OpenGL پردازش میشوند که کیفیت بالاتری خواهند داشت.
10. با استفاده از تکنولوژی نسبتاً جدید شرکت Adobe با نام AIR نیز میتوان به توسعه برنامههای کاربردی تحت این سیستم عامل پرداخت.
نسخههای اندروید:
اندروید نسخه ۱٫۰
اندروید نسخه ۱٫۰ اولین نسخه اندروید که به صورت تجاری در تاریخ ۲۳ سپتامبر ۲۰۰۸ بر روی تلفن همراه شرکت اچ تی سی (HTC Dream (G۱ معرفی شد.اندروید نسخه ١٫١
در تاریخ ٩ فوریه ٢٠٠٩ اندروید ١٫٠ به ١٫١ بروز رسانی شد.اندروید نسخه ١٫۵ یا Cupcake کیک فنجانی
نسخه ١٫٥ اندروید در ۳۰ آوریل ۲۰۰۹ منتشر شد. این نسخه اندروید مبتنی بر کرنل لینوکس ۲٫۶٫۲۷ بود.اندروید نسخه ١٫٦ یا Donut پیراشکی
در ۱۵ سپتامبر ۲۰۰۹ اندروید نسخه ١٫٦ یا دونات منتشر شد. این نسخه اندروید مبتنی بر کرنل لینوکس نسخه ۲٫۶٫۲۹ بود.اندروید نسخه ۲ و ۲٫۱ یا Éclair نان خامه ای
هر دو نسخه ۲ و ۲٫۱ اندروید مانند نسخه ۱٫۶ مبتنی بر کرنل لینوکس ۲٫۶٫۲۹ طراحی شدهاند. اندروید ویرایش ۲ در ۲۶ اکتبر ۲۰۰۹ معرفی شد. در سوم دسامبر ۲۰۰۹ SDK نسخه ۲٫۰٫۱ معرفی شد و SDK ویرایش ۲٫۱ در ۱۲ ژانویه ۲۰۱۰ منتشر گردید.نسخه ۲٫۲ یا Froyo ماست یخی
اندروید نسخه ۲٫۲ در ۲۰ مه ۲۰۱۰ معرفی شد. این ویرایش اندروید مبتنی بر کرنل لینوکس نسخه ۲٫۶٫۳۲ است.اندروید نسخه ۲٫۳ یا Gingerbread نان زنجبیلی
اندروید نسخه ۲٫۳ یا نان زنجفیلی در ۶ دسامبر ۲۰۱۰ معرفی شد. این ویرایش اندروید مبتنی بر کرنل لینوکس نسخه ۲٫۶٫۳۵ است.اندروید نسخه ۳ و ۳٫۱ و ۳٫۲ یا Honeycomb شانه عسل
اندروید نسخه ۳ و ۳٫۱ و ۳٫۲ یا کندوی عسل که مخصوص تبلتها میباشد در فوریه ۲۰۱۱ (نسخه ۳)، مه ۲۰۱۱ (نسخه ۳٫۱)، ژوئیه ۲۰۱۱(نسخه ۳٫۲) معرفی شد.اندروید نسخه ۴٫۰ یا Ice Cream Sandwich بستنی حصیری
اندروید نسخه ۴٫۰ یا بستنی حصیری در ۱۹ اکتبر ۲۰۱۱ معرفی شد و آن را روی تلفن همراه گلکسی نکسوس معرفی کرد. در این نسخه تغییرات عمدهای در این سیستم عامل نسبت به نسخههای پیشین بهوجود آمد.اندروید نسخه ۴٫۱ Jelly Bean آبنبات ژلهای
اندروید نسخه ۴٫۱ یا آبنبات ژلهای در ۲۷ جون ۲۰۱۲ در کنفرانس سالانه Google I/O معرفی شد. این نسخه که بر پایه هسته لینوکس ۳٫۰٫۳۱ بود با هدف افزایش کارایی و بهبود عملکرد رابط کاربری انتشار یافت. این نسخه در تاریخ ۹ ژوئیه ۲۰۱۲ بر روی سرورهای پروژه متن باز اندروید قرار گرفت. تبلت Nexus ۷ به عنوان اولین دستگاه مجهز به این نسخه در تاریخ ۱۳ ژوئیه ۲۰۱۲ منتشر شد.اندروید نسخه ۴٫۲ Jelly Bean آبنبات ژلهای
اندروید نسخه ۴٫۲ یا آبنبات ژلهای قرار بود در تاریخ ۲۹ اکتبر ۲۰۱۲ توسط شرکت گوگل در مراسمی در شهر نیویورک معرفی شود اما این مراسم به دلیل وقوع توفان سندی منتفی شد.[۸] گوگل این مراسم زنده را تمدید نکرد و معرفی این نسخه از اندروید را در اخبار تحت عنوان «طعم جدیدی از آبنبات ژلهای» انجام داد. اولین دستگاههایی که از این نسخه استفاده کردند، گوشی Nexus ۴ شرکت الجی و تبلت Nexus ۱۰ شرکت سامسونگ بودند که در تاریخ ۱۳ نوامبر ۲۰۱۲ وارد بازار شدند.اندروید نسخه ۴٫3 Jelly Bean آبنبات ژلهای
اندروید نسخه ۴٫3 یا آبنبات ژلهای در ژوئیه 2013 معرفی شد.اندروید نسخه ۴٫۴ kitkat کیتکت
اندروید نسخه ۴٫۴ یا کیت کت در تاریخ ۳ سپتامبر ۲۰۱۳ برای اولین بار معرفی شد. البته اطلاعات دقیقی در مورد ویژگیهای این نسخهٔ جدید منتشر نگردیده است و تنها نام آن به صورت قطعی اعلام شده است.نستله، صاحب برند شکلات کیتکت (به انگلیسی: KitKat) در مقابل استفادهٔ اندروید از این نام برای نامگذاری اندروید ۴٫۴ که نوعی تبلیغ رایگان شکلاتهای آن به شمار میرود، برای گوگل و محصولات سری نکسوس، بر روی بستهبندیهای خود تبلیغ خواهد کرد تا به این صورت یک بازی برد-برد برای هر دو شرکت شکل گرفته باشد و در حوزههای نفوذ یکدیگر تبلیغ کرده باشند.
معرفی پلتفرم اندروید و توصیف آنچه که اندروید را منحصر بفرد می کند:
Intents
Intent هسته ی پیام سیستمی که اندروید اجرا می شود، را مهیا می سازد. یک intent، از یک اکشن که نیاز به اجرا(View ، Edite ، Dial و غیره) و دیتا ترکیب شده است. اکشن یک عمل عمومی که زمانیکه intent دریافت می شود، اجرا می شود و دیتا، داده ای است که روی آن عملیات انجام می دهد. برای مثال داده ممکن است یک آیتم تماس باشد.
Intent برای آغاز فعالیت ها و ارتباط با بخش های مختلف سیستم اندروید استفاده می شود. اپلیکیشن شما می تواند هم یک intent منتشر کند(broadcast) و یا هم دریافت کند.
Sending messages with intents (ارسال پیام با intent)
وقتی یک intent منتشر می شود، شما پیامی ارسال می کنید که به اندروید می گوید یکسری رویداد ایجاد کند. این intent می تواند به اندروید بگوید که یک فعالیت جدید درون اپلیکیشن شما شروع کند و یا می تواند یک اپلیکیشن دیگری را آغاز کند.
Registering intent receivers (ثبت گیرنده ی intent):
زمانیکه شما یک پیام ارسال می کنید، به معنی این نیست که به طور اتوماتیک چیزی اتفاق افتد. شما باید یک گیرنده intent رجیستر(ثبت) کنید تا به intent گوش دهد و سپس به اندروید می گوید چه کاری انجام دهد، که یا task عمل جدیدی را شروع کند و یا یک اپلیکیشن دیگری را اجرا کند. اگر تعدادی گیرنده دریافت intent را قبول کنند، یک انتخاب کننده می تواند ایجاد شود تا به کاربر اجازه دهد تا اپلیکیشنی که می خواهد استفاده کند را انتخاب کند. یک مثال کلاسیک long-pressing یک نصویر در گالری تصاویر می باشد. Long-pressing یعنی کلیک کردن چیزی برای یک مدت زمانی تا اینکه یک context منو بالا بیاید.
به طور پیشفرض، گیرنده های رجیستر شده ی مختلف intent های image-sharing را اجرا می کند. یکی از آنها e-mail و دیگری اپلیکیشن پیام(از بین اپلیکیشن های نصب شده ی دیگر) می باشد. برای اینکه بیش از یک گیرنده intent ممکن را پیدا کنید، به کاربر یک انتخاب کننده که از او می پرسد که چه کاری باید انجام دهد، ارائه می شود: مانند تصویر زیر که می گوید یکی از کارهای زیر را انجام دهد: e-mail ، messaging ، و اپلیکیشن های دیگر:
Cursorless controls
بر خلاف pc ها(کامپیوتر های خانگی)، که به شما اجازه می دهد که از موس برای حرکت مکان نما روی صفحه استفاده می شود، وسایل اندرویدی به شما اجازه می دهد که از انگشتتان برای انجام فقط بعضی از کارهای موس استفاده کنید. اما بجای کلیک راست از چه کاری انجام می شود؟ بجای کلیک راست، اندروید long press را انجام می دهد. فشردن(press) و نگه داشتن(hold) یک دکمه، آیکن و یا صفحه(screen) برای طول دادن یک دوره زمانی، و یک context منو ظاهر می شود. به عنوان یک توسعه دهنده، شما می توانید context منو بسازید و آن را اداره کنید.Views and widgets
View یک المنت معمولی UI است. در زیر چند نمونه از view آمده:• ContextMenu
• Menu
• View
• Surface view
Widget پیشرفته تر از المنت های UI می باشد. مانند check box . در زیر چند نمونه از widget آمده:
• Button
• CheckBox
• DatePicker
• DigitalClock
• Gallery
• FrameLayout
• ImageView
• RelativeLayout
• PopupWindow
تعدادی از widget های بیشتر برای استفاده وجود دارد. به پکیج android.widget در داکیومنت اندروید واقع در سایت آن مراجعه کنید:
http://developer.android.com/reference/android/widget/package-summary.html
Asynchronous calls
کلاس AsyncTask در اندروید به شما اجازه می دهد که چند عمل را بدون اینکه خودتان آن را در نخ های جداگانه مدیریت کنید، همزمان با هم اجرا کنید.Hardware Tools
تلفن های اندروید با چندین ویژگی نرم افزاری آمد که می توانید از آنها برای ساخت اپلیکیشن هایتان از آنها استفاده کنید. مانند جدول زیر:Touchscreen
تلفن های اندروید دارای صفحه های لمسی می باشد، که به طور مسلم امکانات زیادی را اضافه می کند و به کاربران کمک می کند. همچنین اندروید مولتی تاچ را پشتیبانی می کند به این معنی که تمام صفحه با بیش از یک انگشت همزمان، قابل لمس می باشد.GPS
سیستم عامل اندروید با یک GPS تلفن بی سیم ترکیب شده که به توسعه دهنده اجازه می دهد تا موقعیت کاربران را بدست آورد.Accelerometer
اندروید از accelerometer پشتیبانی می کند. یک accelerometer وسیله ای است که شتاب را می سنجد. اگر شما می خواهید بدانید که تلفن حرکت کرده و یا بلرزد یا بچرخد، به شما می گوید.SD Card
یک وسیله ذخیره ساز قابل حمل است که می توانید آن را به تلفن یا کامپیوتر وارد کنید.Software Tools
زمانیکه اپلیکیشن اندروید را می نویسید ابزار های اندروید مختلفی در اختیار شماست. در بخش زیر بعضی از ابزار های محبوب که استفاده می کنید را خلاصه کردیم.Contacts
اپلیکیشن شما می تواند تماس های کاربر که در تلفن ذخیره شده را در دسترس قرار دهد.همه ی نرم افزار هایی که برای توسعه ی اپلیکیشن اندروید نیاز دارید رایگان می باشد.
باید بدانید که سورس کدکامل اندروید ، متن باز می باشد. این به این معنی که فقط برای استفاده رایگان نیست بلکه همچنین برای اصلاح رایگان می باشد. اگر دوست دارید می توانید سورس کد اندروید را دانلود کنید و ورژن جدیدی از اندروید بسازید. شما می توانید این سورس کد را از آدرس زیر دانلود کنید:
http://source.android.com
اندروید بر پایه ی هسته لینوکس 2.6 ساخته شده است. تیم اندروید این هسته را انتخاب کرده اند زیرا این هسته خصوصیات مناسبی برای توسعه ی سیستم عامل اندروید مهیا می کند. ویژگی هسته ی لینوکس 2.6 شامل موارد زیر می باشد(اما به آن محدود نمی شود):
1- امنیت: هسته ی لینوکس امنیت را میان اپلیکیشن و سیستم اداره می کند.
2- مدیریت حافظه: هسته مدیریت حافظه را برای شما انجام می دهد و شما را در توسعه ی اپلیکیشن آزاد می گذارد.
3- مدیریت پردازش: هسته ی لینوکس پردازش ها را به خوبی مدیریت می کند و منابع مورد نیازشان را به آنها اختصاص می دهد.
4- شبکه: همچنین هسته ی لینوکس ارتباطات شبکه ای را اداره می کند.
5- الگوی درایور: هدف لینوکس این است که اطمینان دهد که با هر سخت افزاری کار کند. تولید کنندگان سخت افزار می توانند درایور هایشان را تحت لینوکس بسازند.
در زیر چند نمونه از ویژگی های Linux 2.6 را مشاهده کنید:
فریم ورک اندروید
به دلیل هسته ی لینوکس2.6، فریم ورک اندروید هم با ویژگی های مختلفی توسعه یافت. این ویژگی ها به سمت پروژه ی متن باز بیشماری کشیده شد. خروجی این پروژه ها در زیر نتیجه شده:1- زمان اجرای اندروید: زمان اجرای اندروید از کتابخانه های هسته ی جاوا و ماشین مجازی دالویک، ترکیب شده است.
2- Open GL(graphics library) : در این پلتفرم به طور متقابل از API ای برای تولید گرافیک کامپیوتری دوبعدی و سه بعدی استفاده شده است.
3- (webkit)وب کیت : این موتور جستجوی وب متن باز، قابلیت نمایش محتوای وب و بارگذاری صفحه فراهم می کند.
4- SQLite : این موتور پایگاه داده ی رابطه ای متن باز، وسیله های توکار طراحی شده است.
5- مدیا فریم ورک: این کتابخانه ها به شما اجازه ی ضبط و پخش صوتی و تصویری می دهد.
6- SSL(secure sockets layer) : این کتابخانه ها مسئول امنیت اینترنت می باشد. ssl یک پروتکل امنیتی است.
در زیر لیستی از کتابخانه های اندروید آمده است:
/ج
{{Fullname}} {{Creationdate}}
{{Body}}