عملکرد اپلیکیشن های اندرویدی چگونه است؟

عملکرد اپلیکیشن های اندرویدی چگونه است؟

ساختار و عملکرد اپلیکیشن های اندروید

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

این مقاله دارای بخش های زیر است:
ویدئو: آشنایی با ساختار اپلیکیشن اندروید
عملکرد اپلیکیشن اندروید
چرخه عمر یا Lifecycle چیست؟
چرخه عمر اپلیکیشن
آشنایی با اکتیویتی ها
چرخه عمر اکتیویتی
آشنایی با فرگمنت ها
چرخه عمر فرگمنت
ارتباط میان اکتیویتی و فرگمنت
ظاهر نرم افزار
محتوای اپلیکیشن اندروید
یه کم بحث کنیم؟


ویدئو: آشنایی با ساختار اپلیکیشن اندروید


عملکرد اپلیکیشن اندروید

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

عملکرد اپلیکیشن های اندرویدی

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

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


چرخه عمر یا Life Cycle چیست؟

چرخه عمر همانطور که شاید از اسم آن هم متوجه شده باشید، مربوط به حالت هایی میشود که یک شئ (منطور هر چیزی میتواند باشد، مثلا ماشین، بدن انسان، نرم افزار و غیره) در طول زمانی که وجود دارد، آنها را طی خواهد کرد.

چرخه عمر اپلیکیشن اندروید

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

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


چرخه عمر اپلیکیشن

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

چرخه عمر اپلیکیشن

در حقیقت این Life Cycle دارای جزئیات زیادی است. اما میخواهم آن را به سه قسمت کلی تقسیم کنم، سپس در ادامه و در توضیحات اکتیویتی و فرگمنت خواهید دید که هرکدام به زیرمجموعه های ریز تری تقسیم میشوند. برای درک راحت تر، میتوانید بگوییم سه مرحله اصلی در زندگی هر اپلیکیشن اندروید وجود دارد.

  1. اجرا شدن: وقتی که آیکون اپلیکیشن را در منوی نرم افزارهای خود لمس میکنید، یا اینکه از طریق اعلان ها، ناتیفیکیشن یک برنامه را انتخاب کنید آن نرم افزار به حالت اجرا در می آید و شما میتوانید آن را روی صفحه نمایش خودتان ببینید. در این زمان گفته میشود که اپلیکیشن در حالت اجرا قرار دارد. به محض اینکه دیگر اپ را روی صفحه نبینید، مرحله بعدی شروع میشود.
  2. رفتن به پس زمینه: هانطور که گفتم وقتی که اپلیکیشن دیگر روی صفحه دیده نشود، به پس زمینه میرود. یعنی ممکن است وسط کار کردن با یک اپلیکیشن به اپلیکیشن دیگری بروید. یا یک نرم افزار دیگر مانند تماس ها باز شود. وقتی یک اپ به پس زمینه میرود، ممکن است یک نرم افزار دیگر در حالت اجرا قرار گرفته باشد و روی صفحه نمایش داده شود.
  3. بسته شدن کامل: هنگامی که کار شما با اپلیکیشن تمام میشود، میتوانید آن را ببندید. در هنگام بسته شدن آخرین مراحل اجرای اپ طی خواهند شد. البته میتوانید تا زمانی که اپلیکیشن را روی گوشی خود نصب دارید، این چرخه را تکرار کنید. اما باید بدانید که این مرحله در زمان بسته شدن کامل نرم افزار اتفاق می افتد.

بعد از یاد گرفتن این مراحل باید به سراغ اجزای اصلی ساختمان اپ یعنی اکتیویتی و فرگمنت برویم . چرخه های عمر آنها را با هم بررسی کنیم.


آشنایی با Activity ها

آشنایی با اکتیویتی ها

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

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


چرخه عمر یا Life Cycle اکتیویتی

چرخه عمر یا lifecycle اکتیویتی

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

هر اپ اندرویدی باید حداقل یک اکتیویتی داشته باشد که بتواند اجرا بشود. به همین دلیل معمولا به چرخه عمر اکتیویتی، همان چرخه عمر اپلیکیشن هم گفته میشود.

 متدهای Life Cycle برای تعیین نحوه ی عملکرد اپلیکیشن در شرایط مختلف، استفاده میشوند. شما میتوانید این متد ها را درون اکتیویتی صدا بزنید و پیاده سازی کنید. سپس میتوانید کدهایی که میخواهید در شرایط مختل در آنها اجرا شوند را درون این متد ها بنویسید. همانگونه که اشاره شد چند حالت مختلف ممکن است برای یک برنامه اتفاق بیفتد. به همین دلیل متدهای اصلی چرخه عمر در یک اکتیویتی اندرویدی را معرفی میکنیم:

  • متد onCreate: از نام این متد پیداست که مربوط به زمانی است که اکتیویتی ساخته میشود. یعنی اولین قدم برای اجرا، ساخته شدن اکتیویتی است. این مرحله زمانی است که اکتیویتی شروع به کار میکند و نیاز دارد تا بعضی از کارها مثل مقداردهی اولیه آبجکت ها را انجام دهد. همه ی این اعمال در متد onCreate اجرا میشوند. سرعت بالا آمدن اکتیویتی به این متد بستگی دارد.
  • متد onResume: بعد از اجرا شدن متد onCreate و بالا آمدن نرم افزار، احتیاج است که اپلیکیشن ادامه پیدا کند (باز بماند). تا زمانی که در محیط اپلیکیشن باشیم متد onResume در حال اجرا میباشد. بیشتر تعامل کاربر با اپلیکیشن در این متد صورت میگیرد.
  • متد onPause: فرض کنید در حال کار با اپلیکیشنی هستید که دوستتان به شما زنگ میزند. به محض بالا آمدن صفحه تماس گوشی، اپلیکیشن فعلی به حالت onPause میرود. اپلیکیشن تماس گوشی هم که با برقرار شدن تماس اجرا شده، متد onResume آن تا زمانی که تماس را قطع نکرده باشید ادامه خواهد یافت.
    اپلیکیشن میتواند به طریقه های مختلفی به متد onPause خود برود. حتی با زدن دکمه ی Recent App یا Home در موبایل هم میتوانید اپلیکیشن را به این متد ببرید. بعد از برگشتن دوباره به اپلیکیشن (بدون اینکه آنرا کاملا بسته باشید) دوباره متد onResume اجرا خواهد شد.
  • متد onDestroy: این متد زمانی اجرا خواهد شد که اپلیکیشن را کاملا ببندید. اگر از برنامه خارج شوید ممکن است کامل بسته نشده باشد. وقتی از برنامه های پس زمینه آنرا پاک کنید، این متد اجرا میشود و همه ی عملکرد اپلیکیشن را خاتمه خواهد داد.

[box type=”note” align=”aligncenter” class=”” width=””]نکته فنی: معمولا متدهایی که با کلمه on شروع میشوند، مربوط به چرخه عمر آن بخشی هستند که در حال کار کردن با آن هستید.[/box]


آشنایی با Fragment ها

فرگمنت

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

فرگمنت ها مانند اکتیویتی دارای یک فایل ظاهر (Layout) هستند و توسط اکتیویتی ها کنترل میشوند. در یک مقاله تخصصی در مورد فرگمنت ها توضیح کامل خواهم داد.


چرخه عمر یا Life Cycle فرگمنت

چرخه عمر یا Lifecycle فرگمنت

فرگمنت ها مانند اکتیویتی ها، نوعی از کلاس های جاوا هستند و دارای متدهای برای کنترل و مدیریت چرخه عمر می باشند. متدهای Life Cycle در فرگمنت ها تعداد بیشتری از اکتیویتی دارند. به این دلیل که باید ابتدا ساخته شده و به اکتیویتی موجود متصل شوند.

در این قسمت از مقاله میخواهیم همه متدهای چرخه عمر Fragment ها را با هم بررسی کنیم و در یک مقاله تخصصی درباره فرگمنت ها توصیح کامل داده خواهد شد.

  • متد onAttach: اولین چیزی که بعد از اضافه شدن فرگمنت به صفحه اجرا میشود، این متد است. در این مرحله، فرگمنت به اکتیویتی اضافه میشود و در اصطلاح به Attach شده یا می چسبد.
  • متد onCreate: بعد از چسبیدن فرگمنت به محل مورد نظر در اکتیویتی، خود Fragment شروع به ساخته شدن میکند و در این مرحله تمامی مواردی که نیاز داریم قبل از اجرا آماده شوند را برنامه نویسی میکنیم.
  • متد onCreateView: باید دقت داشته باشید که در فرگمنت ها، تا قبل از این متد، هیچ ظاهر (View) وجود نخواهد داشت. یعنی اگر قسد کار کردن با المان های رابط کاربری را دارید و میخواهید آنها را مقدار دهی اولیه کنید، باید در این مرحله انجامشان بدهید.
  • متد onActivityCreated: بعد از گذراندن همه مراحل بالا، زمان آن است که اکتیویتی کنترل کننده فرگمنت ساخته بشود. این متد منتظر میماند تا اکتیویتی ساخته شود و سپس اجرا خواهد شد.
  • متد onStart: بعد از اینکه اکتیویتی ساخته شد، فرگمنت همه موارد لازم برای شروع به کار را در اختیار دارد. در این مرحله اکتیویتی شروع به کار میکند.
  • متد onResume: وقتی که کاربر میتواند فرگمنت را روی صفحه مشاهده کند، یعنی این متد اجرا شده و Fragment در این مرحله از چرخه عمر خود قرار گرفته است. تا زمانی که فرگمنت روی صفحه قابل دیدن باشد، این متد در حال اجرا باقی خواهد ماند.
  • متد onPause: وقتی فرگمنتی که در حال تماشای آن هستید، با یک صفحه یا فرگمنت دیگر جایگزین میشود، این مرحله از چرخه عمر برای فرگمنت فعلی اتفاق خواهد افتاد.
  • متد onStop: بعد از محو شدن فرگمنت، این متد صدا زده میشود و همه پردازش های آن متوقف میشوند.
  • متد onDestroyView: وقتی که اکتیویتی کنترل کننده فرگمنت از بین برود، یعنی متد onDestoy در آن اجرا شود، ظاهر فرگمنت نیز با صدا زده شدن این متد نابود میشود.
  • متد onDestroy: در این مرحله فرگمنت از بین میرود.
  • متد onDetach: با صدا زدن این متد، اتصال فرگمنت و اکتیویتی از بین میرود و چرخه عمر Fragment پایان می یابد.

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


ارتباط میان اکتیویتی و فرگمنت

در تصویر زیر ارتباط میان چرخه های عمر این دو قسمت اساسی از اپلیکیشن های اندروید را مشاهده میکنید:

ارتباط بین چرخه عمر اکتیویتی یا فرگمنت

Layout یا ظاهر نرم افزار

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

layout design

فرگمنت ها و اکتیویتی ها اجزایی هستند که هرکدام دارای یک فایل Layout با پسوند xml میباشند. یعنی هر کدام از آنها دارای فایل ظاهری هستند و در حقیقت همه اجزایی که در رابط کاربری نرم افزار مشاهده میکنید با استفاده از Fragment و Activity ساخته میشوند.

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

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


محتوای اپلیکیشن اندروید

محتوا در اپلیکیشن اندروید

 با کد نویسی و گرافیک میتوان ظاهر و عملکرد اپلیکیشن اندروید را تولید و تنظیم کرد. اما هر اپلیکیشن محتوایی دارد که از متن و فایلهای چندرسانه ای تشکیل شده اند. متن، عکس، موسیقی و فیلم هایی که در اپلیکیشن های متفاوت میبینید، میتوانند با روش های متفاوتی تهیه شده باشند. این روش ها به دو دسته استاتیک و دینامیک تقسیم میشوند.

  • استاتیک: محتوای Static یا ایستا، به محتوایی گفته میشود که قابل آپدیت کردن نیست. این مدل از محتوا معمولا درون اپلیکیشن ریخته میشود و برای آپدیت کردن آن باید نسخه جدیدی از نرم افزار ساخته شود. این محتوا در قسمتی از برنامه به نام Resource قرار میگیرد.
    Resource یعنی منابع و همه ی منابع اپلیکیشن اندروید در آن قسمت بارگذاری میشوند. در هنگام نیاز، میتوانیم از هرکدام از آنها استفاده کنیم. این موارد شامل تصاویر، آیکون ها، عکس های برنامه و لوگو و متن ها میباشند. متن های طولانی هم میتوانند در قسمت resources جا بگیرند.
  • دینامیک: استفاده از محتوای استاتیک در اپلیکیشن های اندروید کار بسیار پیش پا افتاده و ساده ای است. هیچکدام از نرم افزارهای حرفه ای از محتوای ایستا استفاده نمیکنند. محتوای دینامیک به صورت ساده یعنی اپلیکیشن اندروید محتوای به روز را از سرورهای اینترنتی دریافت میکند، بدون اینکه نیاز به آپدیت کردن نرم افزار وجود داشته باشد.
    برای استفاده از این روش باید بتوانید اپ خود را به اینترنت متصل کنید و همچنین یک سرور آنلاین برای تامین محتوا و کنترل آن تهیه نمایید.

یه کم بحث کنیم؟

بحث

آیا شما هم در زمینه شروع ساخت اپلیکیشن های اندروید تجربه ای دارید؟ میتوانید با نوشتن نکته ها و مطالب خود در قسمت نظرات (همین پایین)، به کامل تر شدن این مقاله آموزشی کمک کنید.


منابع بیشتر برای مطالعه

میتوانید از منابع زیر برای مطالعه بیشتر در این زمینه استفاده کنید:

2 دیدگاه دربارهٔ «عملکرد اپلیکیشن های اندرویدی چگونه است؟»

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

اسکرول به بالا