آموزش اندروید
آموزش اندروید

بررسی فولدرهای src و gen

آموزش نهم
اهداف آموزشی این قسمت عبارتند از:
۱٫ معرفی فولدر src
۲٫ نحوه ایجاد یک پکیج جدید
۳٫ معرفی فولدر gen و فایل R.java
در این قسمت قصد داریم به بررسی تک تک اجزای تشکیل دهنده یک اپلیکیشن بپردازیم اما پیش از آن
دانستن این نکته الزم است که هر اپلیکیشن دارای یکسری فولدر به صورت پیش فرض است که این
فولدرها در تصویر زیر قابل مشاهده می باشند:

Android22
به طور خالصه فولدرهایی که در تصویر فوق مشاهده می شوند به منزله حداقل فولدرهایی هستند که هر
اپلیکیشن برای اجرای درست بایستی از آنها برخوردار باشد. بسته به نوع اپلیکیشنی که می خواهیم طراحی
کنیم می توان یکسری فولدر دیگر که نام آنها از پیش تعیین شده اند را نیز به این لیست اضافه کنیم که
در طول این آموزش و آموزش های بعدی به بررسی همه این موارد خواهیم پرداخت.
معرفی فولدر src پس ساخت اولین پروژه اندروید در محیط برنامه نویسی اکلیپس در آموزش هشتم، در این قسمت قصد
داریم به بررسی تک تک پوشه های تشکیل دهنده یک پروژه اپلیکیشن اندروید بپردازیم. برای این منظور
پروژه ای که در آموزش هشتم تحت عنوان My First Android Project ساخته بودیم را باز می
کنیم:

Android23
همانطور که در تصویر فوق مشاهده می شود، اولین فولدر در یک پروژه اندروید src نام دارد. در واقع واژه
src مخفف واژه Source به معنی “منبع” یا “مأخذ” می باشد. این فولدر در برگیرندۀ کلیۀ فایل
های جاوا است که در اپلیکیشن خود مورد استفاده قرار می دهیم. زیر مجموعه این فولدر همان پکیجی
قرار دارد که در حین ساخت پروژه تحت عنوان com.behzadmoradi.mainpackage ساختیم.
به طور کلی کاری که این پکیج می کند این است که از تداخل فایل های جاوا که برای توسعه اپلیکیشن
خود طراحی می کنیم جلوگیری به عمل آورده و موجب می گردد کالس های مورد استفاده سازماندهی
شوند.
ایجاد یک پیکج جدید در جاوا
ما به عنوان یک توسعه دهنده اندروید به هر تعداد پکیج که برای اپلیکیشن خود نیاز داشته باشیم می
توانیم ایجاد کنیم. به طور مثال چنانچه بخواهیم یک پکیج دیگر در اپلیکیشن خود ایجاد کنیم به صورت زیر عمل خواهیم کرد)الزم به ذکر است چنانچه در محیط اکلیپس چندین پروژه ایجاد کرده باشیم می
بایست اول پروژه مد نظر خود را انتخاب کرده سپس به صورت زیر اقدام به ایجاد یک پیکج جدید نماییم(:

Android24
همانطور که در تصویر فوق نشان داده شده است، با قرار دادن نشانگر موس خود روی آیکونی که با فلش
قرمز رنگ مشخص شده است، پیام New Java Package به معنی “یک پکیج جدید جاوا”
نمایان خواهد شد. با کلیک کردن روی این آیکون پنجره زیر نمایان می گردد:


Android25

همانطور که در تصویر فوق مشخص است، در بخش Source folder مسیر فولدر src موجود در پروژه My First Android Project مشخص شده است. در بخش Name به معنی “نام”
بایست نامی برای پکیج جدید خود در نظر بگیریم. نکته ای که در انتخاب نام پیکج می بایست همواره مد
نظر قرار داده شود این است که دو بخش اول نام پیکج که بخش اول مربوط به نام دامین است که در
اینجا com می باشد و بخش دوم که مربوط به آدرس دامین است که در این مثال behzadmoradi
است حتماً بایستی با دو بخش اول نام پکیجی که در حین ساخت پروژه تعریف کردیم یکی باشد وصرفاً
بخش آخر یا همان قسمت سوم نام پیکج می بایست نامی جدید باشد. علت این مسئله هم ایجاد یکنواختی
در کلیۀ پکیج های یک پروژه می باشد. حال با دانستن این نکته همانطور که در تصویر فوق نشان داده
شده است نام com.behzadmrodi.secondpackage را وارد می کنیم که عبارت
secondpackage به معنی “پکیج دوم” است)برای آشنایی بیشتر با نحوه نامگذاری پیکج ها در
جاوا به آموزش چهارم مراجعه نمایید(.
اکنون می توانیم دکمه Finish زده و پیکج ایجاد شده در پروژه خود را مشاهده کنیم:

Android26
همانطور که در تصویر فوق مشاهده می کنیم، پکیج جدید ما ایجاد شده و تنها فرقی که با پیکج قبلی
دارد این است رنگ آن سفید می باشد. در واقع این رنگ سفید نشان دهنده آن است که داخل این پکیج
جدید هیچ کالسی وجود ندارد و به محض آنکه یک کالس جدید در آن ایجاد کنیم به رنگ قهوه ای در
خواهد آمد.
معرفی فولدر gen و فایل R.java
واژۀ gen مخفف واژه Generated به معنی “تولید شده” یا “حاصله” می باشد. این فولدر
محل ذخیره سازی فایل جاوایی تحت عنوان R است:

Android27
همانطور که در تصویر فوق مشاهده می شود فایل تولید شده R.java نام دارد)حرف R از اول واژه
Resource به معنی “منبع” گرفته شده است(. به طور خالصه می توان گفت که ما در توسعه
اپلیکیشن اندرویدی از عناصر زیادی استفاده می کنیم که برخی از آنها توسط XML ایجاد می شوند
مثل Layout ها، دکمه ها و غیره و برخی دیگر عناصری هستند همچون عکس ها، فایل های صوتی
و … که جزو منابع اپلیکیشن ما قرار دارند. حال برای آنکه بتوانیم به کلیه این عناصر در Activity ها
دسترسی داشته باشیم بایستی آدرس آنها را داخل کالس مرتبط با Activity وارد کنیم)برای آشنایی
بیشتر با Activity ها به آموزش دوم مراجعه نمایید(. اگر بخواهیم آدرس XML یی مثال یک دکمه
که در XML ساخته شده است را در کالس خود بیاوریم، نه تنها این آدرس ممکن است طوالنی شود،
بلکه ممکن است در حین Run شدن اپلیکیشن نیز با مشکل مواجه شویم و در اینجا است که اهمیت
فایل R دوچندان می شود. به عبارت دیگر سیستم عامل اندروید با این کار Java و XML را به
یکدیگر مرتبط می سازد. کاربرد این فایل به این شکل است که یک id یا یک “شماره معرف”
برای هر یک از عناصر موجود src اپلیکیشن ما من جمله layout، متون، عکس ها، فونت ها و غیره
در این فایل ساخته می شود. نکتۀ جالب در ارتباط با این فایل این است که این فایل به صورت خودکار
توسط برنامه ایجاد می گردد. به عبارت دیگر به محض اینکه ما یک عنصر جدید مثالً یک دکمه جدید
داخل UI برنامه می کنیم، اندروید به صورت خودکار به آن دکمه یک id اختصاص داده و آن id را
وارد فایل R.java می کند. حال زمانیکه بخواهیم به طول مثال عکس خاصی در یک Activity به
کار بریم، از طریق id آن عنصر خاص در فایل R به آن عکس دسترسی پیدا خواهیم کرد. به نظر می
رسد علت انتخاب یک نام بسیار کوتاه تک حرفی تحت عنوان R برای این فایل این است که در حین
آدرس دادن به عناصر موجود در اپلیکیشن زمان زیادی صرف نوشتن نام این فایل نکنیم)فقط با نوشتن
R.id سپس نام عنصر مد نظر به آن دست پیدا خواهیم کرد(.
مزیت دیگر این فایل این است که اگر عناصر موجود در src را با همان اسامی XML یی خودشان به
فایل جاوا لینک دهیم، چنانچه مثالً مشکلی در فایل XML باشد این مشکل در حین Run شدن یا
“اجرای برنامه” خود را نشان خواهد داد و این اتفاق خوبی نیست چرا که ممکن است این مشکل
خود را زمانی نشان دهد که اپلیکیشن به دست کاربر رسیده است. اما زمانیکه یک id برای هر یک از
عناصر در فایل R ایجاد می شود، چنانچه مشکلی در برنامه وجود داشته باشد این مشکل در حین
Compile شدن برنامه خود را نشان خواهد داد و این مسئله خبر خوبی است چرا که پیش از اینکه
اپلیکیشن به دست کاربران برسد، خود برنامه نویس یا توسعه دهنده با مشکالت احتمالی رو به رو خواهد
شد.
چنانچه دو بار روی نام این فایل کلیک کنیم خواهیم توانست محتوایات آن را مشاهده کنیم:

 
کد فوق مربوط به محتویات فایل R است که برای پروژه My First Android Project به
صورت خودکار توسط برنامه ایجاد شده است. به طور مثال نام ic_launcher مربوط به نام آیکون
سبز رنگ اندروید است که به عنوان آیکون اپلیکیشن پس از نصب مورد استفاده قرار می گیرد و یا نام
main مربوط به Layout یی است که در حین ساخت پروژه ایجاد کردیم. همانطور که مشاهده می
شود هر یک از این اسامی دارای یک id نیز می باشند.

نکتۀ بسیار مهمی که در ارتباط با این فایل وجود دارد این است که به هیچ وجه نمی بایست آن را
ویرایش کرده و تغییری در آن ایجاد کنیم که در این صورت Compiler به محض Save کردن
این فایل پس از تغییر آن را به حالت اول در خواهد آورد اما این در حالی است که می توان آن را به کلی
حذف کرد و برنامه بدون هیچ مشکلی اجرا خواهد شد زیرا به محض Compile شدن اپلیکیشن این
فایل مجدداً به صورت خودکار با اعمال آخرین تغییرات ساخته خواهد شد.
نکته پایانی در ارتباط با فایل R این است که در هر بار Compile شدن اپلیکیشن این فایل
Update خواهد شد تا ببیند آیا عنصر جدیدی به برنامه اضافه شده است که بخواهد برای آن یک id
اختصاص دهد و یا آیا عنصری حذف شده است که نیاز باشد id اختصاص داده شده به آن را حذف کند
یا خیر.
پس از مطالعه این آموزش انتظار می رود بتوانیم به سؤاالت زیر پاسخ بدهیم:
۱٫ فایل های اصلی جاوا در یک اپلیکیشن در کدام فولدر قرار می گیرند؟
۲٫ چگونه می توان یک پیکج جدید ایجاد کرد؟
۳٫ علت استفاده از پکیج ها چیست؟
۴٫ علت به کار گیری فایل R.java چیست؟
۵٫ اگر در اپلیکیشن خود به جای لینک دادن از طریق فایل R اقدام به نوشتن آدرس کامل مثال
یک layout بپردازیم، ممکن است با چه مشکلی مواجه شویم؟
۶٫ مزیت آدرس دهی از طریق فایل R چیست؟
۷٫ اگر یکی از اجزای اپلیکیشن خود مثل یک دکمه را حذف کنیم چه اتفافی برای id آن دکمه در
فایل R خواهد افتاد؟
۸٫ به چه نحوی می توان فایل R را ویرایش کرد؟
۹٫ در صورت حذف کردن فایل R چه مشکلی برای اپلیکیشن پیش خواهد آمد؟
در آموزش دهم با فولدر res به طور مفصل آشنا خواهیم شد.
منبع : سکان اکادمی

درباره آموزشگاه نوین آی تی

همچنین ببینید

آموزش برنامه نویسی جاوا

نحوه نام گذاری متغییر های جاوا

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

دیدگاهتان را بنویسید

علی طاهری آموزشگاه طراحی سایت نوین آی تی 021-88283800 info(@)novin-it.net