همانطور که در آموزش قبلی بیان کردیم، در این آموزش می خواهیم با لایه ی بعدی پشته ی نرم افزاری اندروید(Android Software Stack) آشنا شویم. این لایه فریمورک نرم افزار(Application Framework) نام دارد. از آموزش قبلی به یاد داریم که این لایه از اجزاء و کامپوننت های مهمی تشکیل شده که امکان ساخت برنامه های جدید را برای توسعه دهندگان نرم افزار فراهم می کند. برای مثال، همانطور که در ادامه مشاهده خواهیم کرد، View System شامل عناصر گرافیکی معمول برای طراحی رابط کاربری است. چیزهایی مثل Button ها و آیکان ها که بسیاری از برنامه ها در رابط های کاربری خود از آنها بهره می برند در این کامپوننت قرار دارند. در ادامه می خواهیم ضمن معرفی کامپوننت های لایه فریمورک نرم افزار(Application Framework)، نگاهی عمیق تر به هر کامپوننت بیاندازیم.
[divider]
Package Manager
Package Manager یکی از اجزاء Application Framework است. Package Manager در اصل یک پایگاه داده است که مسیر تمامی برنامه هایی که بر روی وسیله همراه نصب شده است را نگهداری و مدیریت می کند. برای درک بهتر عملکرد این کامپوننت در ادامه مثالی تصویری ارائه شده است. به تصویر زیر نگاه کنید:
در تصویر بالا برنامه های نصب شده بر روی یک وسیله ی اندرویدی را مشاهده می کنید. وظیفه ی Package Manager ذخیره سازی و نگهداری اطلاعات مربوط به این برنامه ها است و این به چند دلیل سودمند است. مثلاً به برنامه ها این امکان را می دهد که همدیگر را پیدا کرده و با یکدیگر ارتباط برقرار کنند، تا اینکه برنامه ای بتواند داده های خود را با برنامه ای دیگر به اشتراک بگذارد یا اینکه برنامه ای بتواند درخواست سرویس از برنامه ای دیگر داشته باشد و به تعامل با سایر برنامه ها بپردازد.
[divider]
Window Manager
Window Manager یکی دیگر از اجزاء Application Framework است. همانطور که از نام این کامپوننت پیداست، پنجره های برنامه ها را مدیریت می کند. معمولا برنامه های اندرویدی از چندین پنجره تشکیل شده اند. برای درک مفهوم پنجره در ادامه مثالی تصویری ارائه شده است. فرض کنید برنامه مرورگر وب را اجرا می کنیم.
همانطور که در تصویر بالا دیده می شود، مرورگر وب از دو پنجره تشکیل شده است. قسمت بالایی که Notification Bar نام دارد و برای نمایش رویدادها و وضعیت های مختلف سیستم مورد استفاده قرار می گیرد. به طور مثال کاربر به کمک این پنجره می تواند از وضعیت سیگنال WiFi باخبر شود، باقیمانده شارژ باتری را مشاهده کند و یا ساعت کنونی را مشاهده کند.
همچنین یک پنجره اصلی مشاهده می کنیم که در این مورد(مرورگر وب)، صفحه وب را نمایش می دهد. یک برنامه می تواند شامل چندین زیرپنجره(sub-window) متنوع باشد که منوها و پیغام های برنامه را نمایش دهند.
[divider]
View System
همانطور که قبلا هم اشاره شد، Application Framework شامل بخشی به نام View System می شود. این بخش شامل تعداد زیادی رابط های کاربر گرافیکی(GUI) رایج می شود. مانند آیکان ها، Text Box ها، Button ها و بسیاری دیگر… اجازه دهید تا به یکی از برنامه های موبایل نگاهی بیاندازیم و این رابط های کاربری گرافیکی را مشاهده کنیم.
همان گونه که در تصویر بالا مشاهده می کنید، قسمت بالای رابط کاربری این برنامه(شماره گیر) توسط مجموعه ای از Tab ها سازماندهی شده است و هر Tab به یک رابط کاربری متفاوت که وظایف خاصی را انجام می دهد، مربوط است. به عنوان مثال تب Phone که در تصویر بالا نمایش داده شد، شماره گیر را نمایش می دهد. تب گزارشگر تماس، لیستی از تماس های گرفته شده و تماس های دریافتی اخیر را نمایش می دهد و تب Contacts یک لیست از مخاطبان ذخیره شده در تلفن همراه را نمایش می دهد. به تصاویر زیر دقت کنید:
زمانی که تب Phone را انتخاب می کنیم، رابط کاربری مربوط به شماره گیر را خواهیم دید. این رابط کاربری شبیه به صفحه کلید گوشی طراحی شده است. این طراحی توسط کامپوننت های View System صورت گرفته است. چیزهایی مثل Button ها و Text Box ها… پس از نمایش رابط کاربری، برنامه منتظر(گوش به فرمان) است تا کاربر دکمه ای را فشار دهد و در اصطلاح رویدادی(Event) رخ دهد، تا در مقابل، برنامه پاسخ مناسب را به کاربر بدهد که در این مورد، عدد وارد شده را در Text Box بالای پنجره وارد می کند.
در جلسه آینده در مورد سایر کامپوننت های Application Framework بحث خواهیم کرد.