معماری اندروید (Android Architecture) چیست و چه کاربردی دارد؟


در مقاله قبل ما به شما کاربران عزیز یاد دادیم که “چگونه محیط برنامه نویسی اندروید را نصب کنیم“. حال در ادامه مبحث آموزش برنامه نویسی اندروید ما می خواهیم یک توضیح کلی در مورد معماری و اجراء سیستم عامل اندروید و ساختار آن برای شما توضیح دهیم.

بخش ۱ از ۲: معماری اندروید

۱. سیستم عامل اندروید دارای ۵ بخش و ۴ لایه اصلی می باشد که بخش ها عبارتند از:

  • Linux kernel: هسته سیستم عامل عبارت است از یک مجموعه نرم افزار،که وظیفه مدیریت منابع سیستم،ارتباط بین نرم افزار و سخت افزار و… را برعهده دارد. سیستم عامل اندروید روی لینوکس ۲.۶ سوار شده است.
  • Libraries: این قسمت تشکیل دهنده کد هایی است که قابلیت های اندروید را ارائه مینماید. برای مثال کتابخانه ی SQLite پشتیبانی از بانک اطلاعاتی را برای برنامه هایی که نیاز به ذخیره سازی اطلاعات دارند را فراهم میکند. کتابخانه Webkit ویژگیهای مخصوص مرورگر وب را مهیا می سازد.
  • Android Runtimes: درهمسایگی کتابخانه ها، Android runtimes یکسری کتابخانه های اساسی را برای برنامه نویسان فراهم ساخته تا بتوانند با استفاده از زبان جاوا به تولید برنامه های کاربردی بپردازند. این قسمت همچینین دارای ماشنین مجازی Dalvik است که به هر برنامه اندرویدی اجازه میدهد برای خود یک process مجزا داشته باشد. دقت داشته باشید که برنامه های اندروید در Dalvik کامپایل میشوند. Dalvik یک ماشین مجازی مخصوص برای اندروید است که بخوبی بهینه شده تا مصرف کمتری از باتری، پردازنده و حافظه داشته باشد.
  • Application Frameworks : این بخش شامل قابلیت هایی است و طوری تعبیه شده تا برنامه نویسان بتوانند از آن در برنامه های خود بهره ببرند.
  • Application: در این لایه سطح بالا شاهد برنامه هایی کاربردی هستیم که یا بصورت بومی با خود اندروید همراه هستند (مثل برنامه تلفن، مخاطبان، مرورگر و…) و یا قابلیت نصب به روش های مختلف از جمله با استفاده از Android Market را دارند.

آشنایی با معماری و اجزاء اندروید

بخش ۲ از ۲: اجزاء اندروید

۱. برنامه های اندروید از چهار جزء اساسی تشکیل شده اند که آنها عبارتند از:

  • Activities: صفحه نمایش را با رابط کاربری (UI) نشان می دهد. (مثلا کاربر می خواد ایمیل هاش رو چک کنه، همون صفحه ای که لیست ایمیل هاش رو نشون می ده که فعالیته، وقتی رو ایمیل کلیک میکنه یه فعالیت دیگه شروع میشه که باعث میشه کاربر یه صفحه‌ی دیگه رو ببینه، وقتی می خواد ایمیل بفرسته یه صفحه‌ی دیگه براش باز میشه که یه فعالیت دیگه است ). رابط کاربری با XML یا مستقیما از خود جاوا ساخته میشه.
public class MainActivity extends Activity {  }
  • Services: نقش کارهایی رو ایفا می کنن که در پشت صحنه باید انجام بشه. خدمات کاملا مستقل از جزئی که اونا رو ساخته، اجرا میشن. (مثلا اگه یه فعالیتی داشته باشیم که یه خدماتی رو اجرا کنه، اگه اون فعالیت رو ببندیم، اون خدمات هنوز در حال اجرا شدن هستن و مستقل از بقیه اجزا کار می کنن ).
public class MyService extends Service {  }
  • broadcast receiver: کارشون ذخیره و بازیابی داده هاست و اینکه داده ها رو برای همه برنامه ها قابل دسترسی کنن. این داده ها به سادگی از طریق جدول هایی به مدل پایگاه داده منتشر میشن.
public class MyReceiver  extends  BroadcastReceiver {  }
  • Content Providers: گیرنده‌ی پخش ساخته شده تا به اعلامیه‌های درون سیستمی پاسخگو باشه. گیرنده ها می تونن به نوار وضعیت (status bar)، اخطار (notification) بفرستن تا به کاربر هشدار بدن. برنامه‌ی خود شما هم میتونه فرستادنده هایی رو بفرسته تا برنامه های دیگه بهش جواب بدن.
public class MyContentProvider extends  ContentProvider {  }