کامپوننت های نرم افزاری در اندروید

کامپوننت های نرم افزاری اجزای مهم، ضروری و جدانشدنی در ساختمان یک نرم افزار اندروید می باشند و لازم است این کامپوننت ها و نحوه ی عملکرد آن ها در فایل مانیفست (AndroidManifest.xml) تعریف گردد.

در جدول زیر چهار کامپوننت اصلی که می توانند در یک نرم افزار اندروید استفاده شوند آورده شده است:

کامپوننت توضیحات
Activity رابط کاربری را مدیریت و به تعاملات کاربر با صفحه نمایش رسیدگی می کنند.
Services سرویس ها فرآیندهای پشت صحنه ی برنامه می باشند و معمولا کاربر قادر به دیدن آن ها نیست.
Broadcast Receivers یک بستر ارتباطی بین تمام برنامه ها ایجاد می کند.
Content Providers اطلاعات و مسائل مربوط به پایگاه داده را مدیریت می کنند.

Activity

می توان اکتیویتی را به عنوان یک پنجره در صفحه ی نمایش معرفی کرد که کاربر به منظور انجام کاری با آن در تعامل است؛ یک اکتیویتی کوتاه یک فعالیت را روی صفحه نمایش انجام می دهد. به عنوان مثال یک نرم افزار پست الکترونیک ممکن است یک اکتیویتی برای نشان دادن لیست پیام های جدید، یک اکتیویتی دیگر برای نوشتن یک پیام جدید و اکتیویتی دیگری برای خواندن پیام ها داشته باشد. اگر یک نرم افزار بیش از یک اکتیویتی داشته باشد، آنگاه لازم است یکی از آن ها به عنوان صفحه نخست برای نمایش داده شدن هنگام اجرا مشخص شود.

یک اکتیویتی به عنوان یک زیر کلاس از کلاس اصلی Activity مانند زیر ایجاد می شود

Services

سرویس ها فرآیند هایی هستند که برای انجام عملیات های زمان بر در پس زمینه ی نرم افزار اجرا می شوند. مثلا ممکن است یک سرویس در حال پخش موزیک باشد و در همان زمان کاربر در حال کار با نرم افزاری دیگر که ربطی به پخش کننده موزیک ندارد باشد؛ و یا یک سرویس دیگر بدون مسدود کردن تعامل کاربر با سیستم در حال دریافت اطلاعات از اینترنت باشد.

یک سرویس به عنوان یک زیر کلاس از کلاس اصلی Service مانند زیر ایجاد می شود

Broadcast Receivers

Broadcast Receiver ها به سادگی به پیام هایی که از طرف نرم افزار های دیگر یا سیستم عامل در بین سایر نرم افزار ها پخش می شوند پاسخ می دهند. به طور مثال نرم افزار ها می توانند اعلام (broadcast) هایی را پخش کنند که طی آن سایر نرم افزارها درمی یابند داده ای دانلود شده و آن ها اجازه دارند از آن استفاده کنند. در این هنگام گیرنده های اعلام (Broadcast Receivers) پیام را دریافت، رهگیری نموده و اقدات متناسب با آن را آغاز می کنند.

گیرنده های اعلام یک زیر کلاس از کلاس BroadcastReceiver می باشند و هر پیام به صورت یک شی Intent اعلام می شود.

Content Providers

یک کامپوننت ارائه دهنده ی محتوا، داده را از یک نرم افزار به نرم افزار دیگری که تقاضا کرده است ارائه می دهد. این درخواست توسط متد های کلاس ContentResolver انجام می شود. داده هایی که قرار است تبادل شوند ممکن است در سیستم فایل، پایگاه داده یا در هر جای دیگری ذخیره شده باشند.

ارائه دهنده ی کلاس محتوا به عنوان یک زیر کلاس از کلاس ContentProvider پیاده سازی می شود و برای اینکه قادر باشد با سایر نرم افزارها به تبادل اطلاعات بپردازد باید بر اساس مجموعه ای از استاندارد ها پیاده سازی شده باشد.

ما در این کدها از جزییات چشم پوشی کرده ایم. در مباحث آموزشی جلوتر هر کدام از این کامپوننت ها مفصلا بررسی می شوند.

سایر کامپوننت ها

کامپوننت های دیگری نیز وجود دارند که در راستای قدرت بخشیدن به کامپوننت های بالا و موازی با آن ها استفاده می شوند. این کامپوننت ها در زیر آورده شده اند

کامپوننت توضیحات
Fragments نشان دهنده ی بخشی از رابط کاربری در یک Activity است.
Views عناصر رابط کاربری هستند که بر روی صفحه نمایش قرار گرفته اند؛ نطیر دکمه ها، متن ها و غیره.
Layouts نمایش سلسله مراتبی عناصر رابط گرافیکی است که فرمت صفحه نمایش و جای گیری عناصر در صفحه را کنترل می کند. صفحه بندی در برنامه توسط لایوت ها انجام می شود.
Intents پیامی است که به وسیله ی آن کامپوننت ها با یکدیگر ارتباط برقرار می کنند.
Resources عناصر خارجی مانند تصاویر، رشته ها و غیره.
Manifest فایل پیکربندی نرم افزار است. به عبارت دیگر شبیه یک نقشه برای سیستم عامل اندروید است که از روی آن برنامه ی ما را اجرا می کند و لازم ات بدانید کوچکترین کمبود یا نقص در این فایل باعث می شود اجرای برنامه با مشکل مواجه شود