( برای آشنایی ابتدایی با اکتیوتی و لیوت این پست را مطالعه نمایید )
همان طور که قبلا ذکر کردیم اپلیکیشن های اندروید از دو بخش اصلی(دو فایل) تشکیل شده اند.
۱- اکتیوتی ها: منطق و کارهایی که اپلیکیشن ما انجام میده رو در این فایل ها و به زبان جاوا می نویسیم.
۲- لیوت ها : رابط کاربری ما در این فایل ها و به زبان XML نوشته می شود.
برای مثال  برای طراحی رابط کاربری (UI) کادر های ورودی متن ، دکمه ها و … رو در لیوت ها قرار می دهیم و این که اگر کاربر روی دکمه کلیک کرد چه کاری باید انجام بشه رو در اکتیویتی می نویسیم.البته منابع و کتابخانه های مورد نیاز رو هم می تونیم در صورت نیاز به پروژمون اضافه می کنیم .
بیاید با ایجاد یک پروژه جدید با این دو فایل بیش تر آشنا بشیم.

(برای مطالعه در مورد ساختن یک پروژه جدید در اندروید این پست را مطالعه نمایید)
ساختن پروژه جدید
یک پروژه جدید با مشخصات زیر بسازید :
نام اپلیکیشن :  Test (اگه دوست دارید میتونید اسم دلخواهی برای اپلیکیشنتون بگذارید . در کل برای یادگیری آموزش ها در من و اندروید اگه سعی کنید نام گذاری هاتون مطابق با مثال های ما باشه بهتره (بدلیل هماهنگی) .بعد از یادگیری می تونید اسامی دلخواه خودتون رو انتخاب کنید).
نام دامین : apk.manoandroid.com
سطح API اپلیکیشن :۱۵
نوع اکتیوتی :Empty Activity
نام اکتیوتی : پیش فرض (MainActivity.java)
نام لیوت : پیش فرض (activity_main.xml)
بعد از کلیک روی Finish ، پروژه ما در اندروید استادیو باز می شود.

همان طور که گفتیم هر اکتیوتی یک لیوت (طرح) رو برای برقراری ارتباط با کاربر داره که با نمایش دادن اون لیوت در صفحه نمایش می تونه اطلاعات مورد نظر رو به کاربر مخابره و یا از کاربر دریافت کنه.خوب اول بریم سراغ آشنایی با لیوت و نگاهی بندازیم به محتویات اون .
موقع باز شدن پروژه به طور پیش فرض فایل لیوت (activity_main.xml) در حالت Design برای ما نمایش داده می شود.
نکته : مسیر  نگهداری فایل های لیوت ما در “app/res/layout ” می باشد.
در صورتی که این فایل در ادیتور شما باز نیست ،مطابق تصویر در پنجره Project Explorer از مسیر  “app/res/layout ” روی فایل (activity_main.xml) دو بار کلیک کنید تا محتویات اون در بخش Editor برامون به نمایش در بیان .

جهت مشاهده محتوای نوشتاری این فایل که به صورت XML نوشته شده است باید حالت نمایش Text رو انتخاب کرده باشید.
همان طوری که در تصویر بالا می بینید با سوییچ کردن به حالت نمایشی Text ، کدهایی که نمای اپلیکیشن ما رو طراحی می کنند رو میبینید.
در سمت راست این متن ها می تونید نمایی که این کدهای XML برای ما به وجود آورده اند رو مشاهده کنید. (نگران نباشید این کدها خیلی خیلی آسون هستند.به مرور با این کدها آشنا می شیم.)
با هر تغییری که در این کدها اعمال کنیم نمای ظاهری لیوت ما تغییر میکنه. از طرفی هر تغییری (مانند جابه جایی عناصر ، تغییر اندازه اونها و… ) که  از طریق نمای ظاهری به عناصر اعمال کنیم مستقیما بر روی کدها منعکس می شوند.
خوب برای مثال در قسمت کدها و در جلوی android:text بجای متن Hello World بنویسید ” بسم الله الرحمن الرحیم ” همون طور که مشاهده می کنید متن
” بسم الله الرحمن الرحیم ” بجای عبارت قبلی بر روی صفحه نمایش داده میشه.

در حقیقت با  خاصیت android:text متن نمایشی بر روی هر عنصر (المنت) رو مشخص می کنیم.(نگران نباشید الان فقط در سطح آشنایی داریم صحبت می کنیم.در جلسات آینده کاملاً با این المنت ها (Textview ها ، Button ها و … ) و نحوه قرار دادن اونها توی لیوت مورد نظر آشنا می شیم.)

بیاید کمی بیشتر با کدهای لیوت آشنا بشیم.

محتویات این فایل را در زیر مشاهده می کنید.(جهت هماهنگی با ما مقدار android:text رو برابر (Hello World!) قرار بدید.)

توضیح کدها :(این توضیحات در سطح آشنایی می باشند در بخش های آتی بیشتر با این مباحث آشنا می شویم)
 دو تگ باز و بسته <RelativeLayout></RelativeLayout> (خط ۲ و خط ۱۷)  مشخص کننده نوع لیوت ما هستند.  تمامی خطوطی که بین این دو تگ قرار می گیرند المنت های متعلق به این لیوت را تعریف می کنند.دقت کنید که کدهای تمامی المنت ها باید بین دو تگ لیوت (<RelativeLayout></RelativeLayout>) قرار بگیرند.
اگر به کدها نگاه کنید می بینید که بعد از بسته شدن تگ آغازین <RelativeLayout> یک تگ با نام <TextView> قرار داده شده (خط ۱۲). این تگ بیانگر یک المنت TextViewدر  فایل لیوت ما هست که  عبارت “Hello World ! ” روی آن نمایش داده میشه.
تنها یک تگ (<TextView … >) در بین دو تگ باز و بسته <RelativeLayout>…</RelativeLayou> قرار داده شده پس این یعنی در فایل لیوت ما فقط یک المنت وجود دارد 😉
تصویر زیر نمای خروجی کدهای لیوت ما را در حالت دبزاین نشان می دهد:

حالا کدهای زیر را کپی کرده رو و با کدهای قبلی جایگزین کنید.(Ctr+S)

حالا اگر دقت کنید بین دو تگ باز و بسته<RelativeLayout>…</RelativeLayout> دو تا المنت قرار دارد (اولی TextView و دومی Button) .
تصویر زیر نمایی که این کدها در نمای دیداری لیوت برای ما ایجاد می کنند رو نشون میده.همون طور که می بینید یک المنت TextView و یک المنت Button در لیوت ما نمایش داده شده است.

به خاصیت های این دو المنت خوب دقت کنید!!! چه چیزهابی بین اونها مشترک هست ؟

android:layout_width : عرض المنت ما را مشخص می کند.
android:layout_height :طول المنت ما را مشخص می کند.
android:text :متن نمایشی روی المنت ما رو مشخص می کند.
android:id : با بکار بردن این خاصیت یک id به المنت هامون میدهیم.
(در جلسات آتی به صورت تخصصی تر با این خواص آشنا میشیم )

نکته : برخی از خواص هستند که در بین المنت ها مشترک هستند.بطور مثال خاصیت های بالا که نام بردیم در اکثر المنت ها وجود دارند .

نگاهی نزدیک تر به اکتیویتی

نکته : مسیر  نگهداری اکتیویتی ها  در “app/java/Package name/” می باشد.( در اینجا منظور از Package name نام پکیج اپلیکیشن شما می باشد. )
برای مشاهده محتویات اکتیویتی (MainActivity.java)،  از مسیر ”  app/java/com.manoandroid.apk.test  ” بر روی فایل MainActivity دابل کلیک کنید.

تصویر زیر محتویات فایل MainActivity رو نمایش می دهد.

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

در زیر کدهای اکتیویی (MainActivity) رو مشاهده می کنید.

به معرفی برخی از خطوط اصلی می پردازیم :
خط ۱ : در این خط نام پکیج اپلیکیشن ما قرار داده شده است.
خطوط ۳ و ۴ : در این خطوط کلاسها و کتابخانه های مورد نیاز در اکتیوتی import شده اند .
خط ۶ : در این خط  اکتیوتی ما (MainActivity )از کلاس AppCompatActivity ارث بری کرده. این بدین معنیه که می تونیم متدهای کلاس AppCompatActivity(والد) رو برای کلاس MainActivity (فرزند) فراخوانی کرده و یا در صورت دلخواه برخی از این متدها را پیاده سازی کنیم.معمولا بیشتر کدهامون رو در این کلاس می نویسم.
خطوط ۸ و۹  :که مربوط به Override کردن متد OnCreate است.(توضیح مربوط به برنامه نویسی جاوا : در زبان های برنامه نویسی شی گرا، Override کردن قابلیتی است که در آن کلاس فرزند (در اینجا MainActivity ) می تواند پیاده سازی خاص خود را از متدهای کلاس پدر (در اینجا AppCompatActivity) داشته باشد و در زمان اجرا ،آن پیاده سازی بجای پیاده سازی پدر استفاده شود).
خط ۱۱ : همان طور که می بینید در این خط کد زیر نوشته شده است :

همان طور که قبلا ذکر کردیم یکی از وظایف اکتیوتی اینه که مشخص میکنه که کدام لیوت باید در صفحه نمایش نشون داده بشه.این خط همین کار رو داره انجام میده.
وقتی که اکتیوتی ما به این خط میرسه به اندروید میگه که فایل لیوتی که برای من طراحی شده (activity_main.xml) رو  بر روی صفحه نمایش نشون بده.
در حقیقت setContentView() تابعی است که که فایل لیوتی که بهش میدیم رو بر روی صفحه نمایش می بره.
R.layout.activity_main هم آدرس کامل فایل لیوت ما هست.منظور از R همون فولدر res (فولدر منابع) ما می باشد.منظور از layout هم فولدر layout موجود در فولدر res و در نهایت activity_main هم نام لیوتی مورد نظر هست.
نکته : همون طور که می بینید پسوند فایل لیوت (.xml ) در آدرس دهی قرار داده نمی شود.

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