ایجاد پروژه در اندروید استودیو و بررسی ساختار کلی آن
با نام و یاد خدا
در جلسات قبل تمام ابزارهای مورد نیاز برای شروع برنامه نویسی اندروید را گفتیم. در این جلسه قصد ایجاد پروژه در اندروید استودیو و بررسی ساختار کلی آن را داریم. پس با ما همراه باشید.
ایجاد پروژه در اندروید
- وقتی برنامه اندروید استودیو را اجرا می کنیم تمام پروژه ها در ستون چپ نمایش داده می شود. برای ایجاد پروژه در اندروید استودیو روی گزینه start a new Android Stadio project کلیک می کنیم .
توجه: که اگر قبلا پروژه ای ایجاد کردید مستقیما وارد آن پروژه می شود . در قسمت file –> Close project را بزنید تا خارج شوید و پنجره زیر برای شما نمایش داده شود.
- برای ایجاد پروژه باید نام و دامنه کمپانی و مسیر ذخیره پروژه را وارد کنید.
نکته: نام پکیج که ترکیبی از نام پروژه و نام دامنه می باشد باید یونیک باشد. اگر نام پکیج شما با نام اپلیکیشن دیگری یکسان باشد، بعدا در بارگذاری اپلیکیشن در در اپ استورهایی مانند گوگل پلی ، بازار و … دچار مشکل می شوید.
- چون قصد داریم این برنامه را برای موبایل و تبلت ایجاد کنیم گزینه اول را تیک می زنیم . سپس باید پایین ترین نسخه اندرویدی که این اپلیکیشن ما ساپورت می کند را تعیین کنیم. API خود را مشخص کنید.(درباره API در جلسه دوم صحبت کردیم)
توجه: هر نسخه جدیدتر اندروید امکانات و قابلیت های جدیدتری دارد که دیوایس ها با نسخه پایین تر آن را ساپورت نمی کنند.
- در این مرحله باید تعیین کنید که چه مدل Activity می خواهید؟ در این مرحله ما ساده ترین نسخه یعنی Empty Activity انتخاب می کنیم.
Activity و layout در ایجاد پروژه در اندروید چه نقشی دارند؟
یک اپلیکیشن از تعدادی Activity و layout تشکیل شده است. کاربر از طریق layout با Activity تعامل دارد. هر Activity از یک سری کدهای جاوا تشکیل شده است که برای تعامل با کاربر از ماسک layout (لایه ظاهری) استفاده می کند.
فرض کنید در اپلیکیشن یک دکمه وجود دارد که با انتخاب آن به صفحه تنطیمات می روید . اینکه با زدن دکمه به کجا برویم کدهای جاواست که در بخش Activity تعریف می شوند و اینکه دکمه کجا باشد و چه رنگ و چه فرم و چه اسم و … در layout طراحی می شود. در واقع مدل گرافیکی که می خواهیم کاربر ببیند را در layout تعریف می کنیم.
- در اینجا نام اکتیویتی و layout مربوط به آن را تعیین می کنیم.
- حالا منتظر بمانید تا پروژه جدید ایجاد شوید .
نکته: باید تمام تیک های مربوط به Build پروژه سبز و ok باشند در غیر این صورت پروژه به طور کامل ساخته نشده است. میتوانید در نوار منو بالا از زیر منو Build گزینه project Rebuild را بزنید تا دوباره Build شود.
توجه: ناگفته نماند که ما اولین پروژه را در جلسه سوم ایجاد کردیم و تمام نکات مربوط به gradle و Build را گفتیم.
ساختار کلی پروژه در اندروید استودیو
همانطور که در تصویر بالا می بینید به صورت پیش فرض دو شاخه مجزا داریم:
- app : هر چیزی مربوط به اپلیکیشن در این دایرکتوری ذخیره می شود.
- Gradle Scripts : هر چیزی مربوط به ساخت فایل apk و اجرایی شدن اپلیکیشن در این پوشه وجود دارد.
در تصویر بعد دو شاخه را به صورت گسترده می بینید.(یک سری کد به صورت پیش فرض بعد از ایجاد پروژه در هرقسمت ایجاد می شود که با مفاهیم آن ها آشنا می شویم).
زیر شاخه های app شامل موارد زیر است:
- Manifests : اطلاعات پایه ای مربوط به هر اپلیکیشن در داخل این فایل می باشد. میتونیم بگیم که کنترل کننده کل پروژه است برای همین به چیزهای مهمی پرداخته است.
فایل Androidmanifests.xml را باز کنید. همانطور که در تصویر بالا می بینید نام پکیج ، همان نامی است که در حین ایجاد پروژه نوشتیم. در تگ application خصوصیاتِ ، اجازه پشتیبان گیری از اپ، آیکون و نام اپلیکشن و … تعریف شده است.
سپس تگ Activity که در ابتدای کار ایجاد کردیم را داریم. به ازای هر اکتیویتی که ایجاد کنیم یک تگ اکتیویتی در فایل Androidmanifests.xml خواهیم داشت. (گام به گام با تک تک این ها آشنا می شویم. نگران نباشید)
- Java: کلاس های جاوا در این فایل ذخیره می شوند. در بین زیر شاخه های java ما فقط با پوشه اول سرو کار داریم که شامل کدهای جاوای اکتیویتی ما می باشد. همانطور که در تصویر می بینید، این اکتیویتی مربوط به پکیج com.dazhyarco.myapplication است. (که در حین ایجاد پروژه تعریف کردیم)
اکتیویتی که ایجاد کردیم به صورت پیش فرض از AppcompatActivity اکستند شده است در واقع ارث بری کرده است و فعلا oncreate که متد پدرش (Super)است را به ارث برده است. و حتی می تواند override کند(بهتر است با مفاهیم شی گرایی در جلسه چهارم آشنا شوید)
نکته: کلاس AppcompatActivity یک کلاس بسیار قدرتمند با خصوصیات متنوعی می باشد که توسط گوگل ایجاد شده است.
- res : در واقع منابع ما هستند و شامل زیر شاخه های زیر است:
- drawable : شامل تمام تصاویر مورد استفاده در اپلیکیشن
- Layout : قبلا گفتیم محیط گرافیکی است که اکتیویتی به عنوان ماسک استفاده می کند و با کاربر تعامل دارد.
- mipmap: تصاویر مربوط به آیکون اپلیکیشن
- values : شامل فایل های Xml مربوط به colors ، strings و styles اپلیکیشن می باشد.
توجه:چون جاوا یک زبان شی گراست ، تعریف نام و رنگ و آیکون و … به صورت مستقیم در کدنویسی کار استانداردی نیست و هشدار میدهد.
پوشه mipmap
در پوشه mipmap ما آیکون های موردنظر خود را قرا می دهیم:
نکته: به طور کلی ترکیب این دو پوشه برای حفظ شدن یسپانسیو می باشد یعنی آیکون با سایز های مختلف دراین پوشه ها قرار می گیرد تا در صورت تغییر ابعاد نمایشگر در دیوایس های مختلف، سایز تصاویر حفظ شود.
مثلا در Manifests که نیاز به تعریف آیکون بود به صورت زیر آن را صدا می زنیم. با @ پوشه mipmap فراخوانی شدو بعد از اسلش نام پوشه تصویر بیان شد:
android:icon=”@mipmap/ic_launcher“
android:roundIcon=”@mipmap/ic_launcher_round“
پوشه Values شاخه color.xml
همانطور که در تصویر زیر می بینید. هر رنگی که بخواهیم در برنامه استفاده کنیم باید ابتدا در این شاخه تعریف شود. که در تگ color یک نام تعریف می کنیم و مقدار رنگ را وارد می کنیم .
بعد از این در هر جای برنامه که نیاز به این رنگ باشد ؛ کافی است پوشه را صدا بزنیم و نام رنگ را بعد از اسلش قرار دهیم به شکل زیر:
android:textColor=”@color/colorPrimary“
پوشه Values شاخه string.xml
در پوشه String تمام رشته ها تعریف می شوند. و درست مثل قبلی در صورت نیاز فراخوانی می شوند. که در Manifests صدازده شده است:
android:label=”@string/app_name“
نکته: استفاده از فایل string به جای نوشتن نام به صورت مستقیم باعث می شود که امکان چند زبانه بودن را به اپلیکیشن ما اضافه کند.
پوشه Values شاخه styles.xml
در این پوشه هم تمام ظواهر و استایل اپلیکیشن تعریف می شود.
بنابراین روش جاوا این گونه است که باید در res منابع را تعریف کینم و هرجا لازم بود صدا بزنیم. این کار باعث می شود ساختار کدنویسی منسجم تر شود و همچنین فهم برنامه راحت تر می شود و هم تغییر آن. یعنی هر موقع خواستیم چیزی را تغییر دهیم فقط کافی است به پوشه منابع (res) رجوع کنیم و با تغییر در این پوشه res، در کل پروژه، تغییر اعمال می شود.
پوشه layout
در پوشه layout می توانیم ظاهر اپلیکیشن خود را تعیین کنیم این صفحه دو گزینه دارد:
- Design: نمای گرافیکی اپلیکشن می باشد(برای کسانی که با کدنویسی آشناییتی ندارند راحت است)
- Text : به صورت کد می باشد.
تا اینجای کار ما به صورت کلی با ایجاد پروژه در اندروید استودیو و ساختار کلی آن آشنا شدیم در ادامه می خواهیم با چرخه حیات Activity ها آشنا شویم. با ما همراه باشید.
سلام علیکم
بعد از ساخت پروژه دوشاخه ی اصلی Android بنده: یک شاخه نام پروژه و شاخه دیگری Gradle Script هستش. مشکل از کجاست؟ در ضمن از AVG vpn هم استفاده میکنم که معتبره.
در واقع build ام هم با خطا مواجه شده و لینکی رو بهم معرفی کرده که توش نوشتهWhy the Gradle Daemon is important for performance و توضیحاتی داده که متوجه نمیشم. میشه کمکم بفرمایین؟
سلام و عرض ادب.
در صورتی که تمام موارد قید شده در پست را رعایت کرده اید لطفا با شرکت هماهنگ کنید تا به صورت ریموتی مشکل شما بررسی و انشاالله حل شود.
با تشکر از همراهی شما
راهی را با مطالعه سایت خود مرجع متوجه شدم که بیانش مفید است: باید به فایل gradle.propertis از همان پروژه رفته و دستور Home
org.gradle.daemon=false را به آن افزود. دیگر آن خطا را نمیدهد. دلیلش را نمیدانم ولی راهش این است.
موفق و پایدار باشید
با سلام وقدر دانی
راهی را با مطالعه سایت خود مرجع متوجه شدم که بیانش مفید است: باید به فایل gradle.propertis از همان پروژه رفته و دستور
org.gradle.daemon=false را به آن افزود. دیگر آن خطا را نمیدهد. دلیلش را نمیدانم ولی راهش این است.
موفق و پایدار باشید
با سلام
من پروژه جدید اجاد کردم توی اندروید استودیو ولی ارور زیرو میگیرم:
ERROR: Could not find com.android.tools.build:gradle:3.4.2
ممنون میشم راهنماییم کنین
سلام و عرض ادب.
این خطا به دلیل آپدیت نبودن build:gradle شما هست. فیلم یک و دو که روی سایت قرار گرفته را با دقت ببینید.
سلام جناب نیک خواه.
زمانی که بنده layout رو باز میکنم فقط به صورت کدنویسی برام میاره و گزینه design رو در صفحه ندارم که تغییرش بدم.
مشکل از کجاست ؟ چجوری میتونم حلش کنم ؟
سلام و عرض ادب. به احتمال قوی بیشتر مشکل از SDK می تونه باشه و اینکه پلتفرمی که انتخاب کرده اید احتمالا به صورت درست و کامل نصب نیست.
سلام
راه حذف یک پروژه چیه؟
سلام و عرض ادب. ابتدا از گزینه فایل Close Project را بزنید و سپس پروژه را حذف نمایید.
با تشکر از همراهی شما
سلام اررو
Unkown host services gradle .org
مال چیه
سلام و عرض ادب
نام پروژه جدید را درست انتخاب کنید و قبل از اجرای اندروید هم فیلتر شکن غیر رایگان را اجرا کنید.
با تشکر از همراهی شما
با سلام
من بخوام یک java class بسازم با اندروید جدید چطوری باید این کار رو بکنم
از new گزینه file رو انتخاب کردم بعد نوعش رو java class انتخاب کردم ولی میخوام توش تایپ کنم میزنه this file only can read و کدی نمیشه نوشت