پیشیه اندروید :
سیستم عامل قابل حمل که برای اولین بار توسط شرکت اندروید توسعه یافت، که در سال 2005 توسط گوگل خریداری شد. گوگل اندروید را بسیار معروف و یکی از محبوب ترین سیستم عامل های جهان ساخت. اندروید بر پایه کرنل 2.6 لینوکس بنا گذاری شد که این انتخاب خوبی میتوانست باشد به این دلیل که خیلی از ماژول ها بصورت مجانی و از پیش ساخته شده بودند در این کرنل ، مثل ماژول درایور که تقریبا در این ورژن نسخه پایداری بود، همچنین مبحث امنیت که برای سیستم عامل های قابل حمل بسیار مسئله مهمی هست.
اندروید سیستم عاملی کد باز است(Open Source) ، شما به راحتی میتوانید آن را دانلود کنید ، به کد ها نگاهی بیاندازید و حتی آن ها را تغییر دهید و نسخه اندروید خودتان را منتشر کنید، البته باید توجه داشته باشیم که اندروید بسیار بزرگ است، حدود 12 میلیون خط کد برای ساختن اندروید نوشته شده است. لایه نرم افزاری این سیستم عامل جاوا است.یعنی کد های برنامه را به زبان جاوا مینویسیم(البته لایه های C++ و C هم هستند ، ولی ما بیشتر با جاوا راحتیم).نکته جالب دیگر در مورد اندروید این است که کاملا (اصطلاحا) باز است ، یعنی نرم افزار هایی مثل قفل صفحه نمایش ، مخاطبین ، دوربین ... که توسط خود گوگل ساخته شده است، چیزی به غیر از کدهایی که ما مینویسیم نیست، یعنی نرم افزار و کدنویسی فوق العاده ای انجام نشده و ما به راحتی میتوانیم انها را با نسخه نوشته شده توسط خودمان جایگزین کنیم. گوگل طوری اندروید را توسعه داد که بتواند با سخت افزار های متفاوت اجرا شود ( بر خلاف سیستم عامل هاIOS …) این نکته به ما گوشزد میکند که گوشی های موبایل، تبلت و وسایل ارتباطی دیگر بسیار زیادی هستند که اندروید را اجرا میکنند و همچنین نرم افزار نوشته شده توسط ما را.
معماریی پیاده شده در اندروید :
در لایه پایین کرنل لینوکس می بینیم که لایه انتظاعی سخت افزارمان هست که به صورت مستقیم با سخت افزار در ارتباط است، درایور های مختلف برای ارتباط با سخت افزار در این لایه پیاده سازی شده .
در لایه 3 ، کتابخانه های پایه رو میبینیم ، همچنین ماشین مجازی دالویک اندروید. کتابخانه استادندارد C ،کتابخانه چندرسانه ای (عکس ،صدا، تصویر ...)، موتور های مرورگرهای مختلف، کتابخانه دوبعدی ، سه بعدی ، فوت ها و دیتابیس مورد استفاده اندروید ... در این لایه ، لایه زمان اجرا اندروید را هم میبینیم، در این لایه ، کتابخانه های استاندارد زبان جاوا هستند که مطمئنا میدانیم دقیقا همان کتابخانه هایی نیستند که ما با آنها کار میکنیم، درواقع ما با نوع توسعه یافته این کتابخانها کار میکنیم و بعد کد ما تبدیل به کتابخانه ای استاندارد میشود. همچین اینو رو مد نظر میگیرم که برای اجرا کد هامون از ماشین مجازی جاوا (JVM) استفاده نمیکنیم ، بلکه از ماشین مجازی اندروید یعنی دالویک (dalvik) برای اجرای برنامه استفاده میکنیم. روش کار دالویک خیلی شبیه ماشین مجازی جاواست، یعنی فایل جار رو میگیره، کامپایل میکنه به فایل های DEX و توسط دالویک اجرا میشه. در نظر داشته باشیم که هر برنامه درون ماشین مجازی خودش اجرا میشه. یکی از دلایل استفاده از دالویک، همین بود که بتواند اجرای برنامه ها رو بهینه کند با هر سخت افزاری ...
میرسیم به لایه دوم :
Application Framework
در این لایه سرویس هامون رو داریم که همه با جاوا ساخته شده اند، پنجره ها و نمایه ها هستند ، منابع ، همچنین ارائه دهنده محتویات رو داریم (Content Provider) که به ما امکان دسترسی به پایگاه داده و ... را میدهد.سرویس های گوشی و API ها را داریم که به ما امکان دسترسی به شمارگیر ، مکانیاب و ... را میدهد ، .....
همه نرم افزار ها بصورت مستقیم با این لایه در ارتباط هستند و از سرویس های درون این لایه استفاده میکنند.
و در نهایت هم که برنامه ما قرار دارد.
امنیت :
امنیت یکی از مهمترین شاخصه های اندروید است. در اندروید هر برنامه یک شناسه لینوکس دارد که این امر باعث میشود از لحاظ امنیتی خیلی از مشکلات رایج را نداشته باشد، همچنین از تاثیر برنامه ها بر روی یکدیگر جلوگیری میکند، درواقع هر برنامه فقط به منابع و داده های خودش دسترسی دارد و نمیتواند در برنامه های دیگر درستکاری انجم دهد. (هر برنامه در سندباک (SandBox) خودش اجرا میشه که اینکار باعث میشه به نرم افزار های دیگر آسیب رساند). همچنین از مجوز ها استفاده میشود، هر برنامه درصورت نیاز به استفاده از امکانات مختلف گوشی، باید از کاربر مجوز این کار را گرفته باشد، در واقع هر برنامه زمان نصب، تمام نیاز های خود را به کاربر میگوید و کاربر میتواند به آن نرم افزار اجازه نصب بدهد یا خیر ، که همین امر باعث بالا رفتن امنیت میشود. (زمان پیاده سازی نرم افزار ها، برنامه نویس باید مشخص کند که نرم افزار چه نیاز هایی دارد، در غیر اینصورت نمی توانند از آن سرویس ها و توابع استفاده کند.)
خلاصه و توضیحات تکمیلی :
اندروید بر پایه لینوکس 2.6 بنا شده.
توسط ماشین مجازی دالویک (Dalvik) که مخصوص موبایل طراحی و بهینه شده کار میکند.
گرافیک آن با OpenGl بهینه شده است.
از پایگاه داده SQLLite برای عنوان ذخیره سازی داده ها استفاده میکند.
هر برنامه در سندباکس خودش اجرا میشود که اجازه نمیدهد به نرم افزار های دیگر آسیب برساند.
کد های برنامه به زبان (نه الزاما) جاوا نوشته میشوند.
آمارهایی از نرم افزارهای موجود برای اندروید
تا ماه اکتبر 2010 تعداد یکصد هزار برنامه جانبی برای این سیستم عامل نوشته شده است که سهم بزرگی در محبوبیت این سیستم عامل دارند. تا همین تاریخ تعداد برنامه های نوشته شده برای سیستم عامل آیفون 300 هزار بوده است. اما سرعت رشد سیستم عامل اندروید بسیار بالاتر از بقیه سیستم عامل ها و حتی آیفون است و البته این موضوع را نباید از یاد برد که در لحظه نگارش این مقاله ، اندروید نصف عمر آیفون را دارد.
اندروید دارای کتابخانه های برنامه نویسی قدرتمندی است که کار برنامه نویسان را بسیار ساده میکند. از جمله دیتابیس رابطه ای کوچک شدهی SQLite ، توابع گرافیکی 3 بعدی openGL ، موتور مرورگر webkit (همانند مرورگر کروم) و موتور گرافیکی SGL .
نتیجه گیری :
از نظر بنده ، اندروید انتخاب مناسبی برای سیستم عامل گوشیهای موبایل می باشد، هزاران نرم افزار رایگان ، کد باز بودن ، امنیت بالا و با توجه به کم سن بودن (در مقایسه با سیستم عامل های دیگر) و محبوبیت بسیار زیاد، میتوان آینده روشنی برای این سیستم عامل پیش بینی کرد.
نویسنده: فرشاد جهان منش
کارشناس ارشد مهندسی نرم افزار
Software Developing ... Asp.Net , MsSqlServer , WPF , MVC Frameworks
به کارم علاقه دارم چون تداعی بخش خلق کردنه , جسم بخشیدن به افکار ...