ساخت پروژه در اندروید استودیو، بررسی محیط توسعه و ساختار کلی پروژه

در جلسه آموزش نصب اندروید استودیو با نحوه‌ی نصب محیط توسعه Android Studio و همچنین ساختار SDK آشنا شدیم. در این جلسه قصد دارم شما را با محیط اندروید استودیو، نحوه‌ی ساخت پروژه اندروید و ساختار پروژه آشنا کنم.

ساخت پروژه اندروید

به نام خدا. با اجرای اندروید استودیو، پنجره‌ی زیر ظاهر می شود که در نسخه جدید یعنی Arctic Fox با تغییراتی همراه بوده است. در این نسخه یک منو در سمت چپ پنجره خوش آمد گویی اضافه شده که دسترسی به گزینه‌های Customize و Plugins را به صورت مستقیم امکان پذیر کرده است.
در قسمت Customize تنظیمات مربوط به رنگ پس زمینه IDE و همچنین فونت‌ها قرار دارد. برای دسترسی به گزینه‌‌های مربوط به ساخت پروژه جدید و یا import (درون ریزی) پروژه‌های آماده، در منوی سمت راست باید گزینه Projects انتخاب شده باشد.

آموزش ساخت پروژه اندروید در اندروید استودیو
در این حالت سه گزینه در وسط صفحه نمایش داده می‌شود. گزینه New Project برای ایجاد و ساخت پروژه جدید اندرویدی، گزینه Open برای باز کردن پروژه‌ای که قبلا ساختید (یا قبلا توسط توسعه دهنده دیگری ساخته شده و قصد استفاده از آن را دارید) و Get from VCS برای دریافت پروژه‌های موجود در مخازن آنلاین مانند GitHub استفاده می‌شود. توجه داشته باشید حتما باید بر روی آیکون هر گزینه کلیک کرد تا صفحه مورد نظر باز شود.
سایر گزینه‌ها که تا قبل از انتشار نسخه Arctic Fox یعنی نسخه ۴٫۳ به قبل در کنار این گزینه‌ها نمایش داده می‌شد به دلیل کارایی کمتر آنها به زیر مجموعه گزینه More Actions منتقل شده است. در این جلسه ما فقط با گزینه New Project سروکار داشته و برای ساخت پروژه جدید روی آن کلیک می‌کنیم.

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

در مرحله دوم نوع پروژه اندروید و همچنین نوع اکتیویتی (Activity) اصلی را باید تعیین کنیم. هدف من ساخت اپلیکیشن برای تلفن همراه و تبلت است بنابراین همان تب نخست یعنی Phone and Tablet را انتخاب می‌کنم.
سایر گزینه‌ها هرکدام برای یک هدف خاص پیش بینی شده. Wear OS برای ساخت اپلیکیشن ابزار پوشیدنی (مانند ساعت هوشمند)، Android TV برای تلویزیون‌های هوشمند و Automotive برای خودروهایی که از سیستم عامل اندروید استفاده می‌کنند. در نسخه‌های قبلی اندروید استودیو یک گزینه دیگر با نام Android Things هم وجود داشت که مربوط به برنامه‌های اینترنت اشیاء بود که در نسخه جدید حذف شده است.
اندروید استودیو چند نوع مختلف از اکتیویتی را پیشنهاد می‌دهد. به عبارت دیگر، هر گزینه یک قالب آماده و یک صفحه از پیش طراحی شده را در اختیار ما قرار می دهد که می‌توان بر اساس نیاز، آن را ویرایش کرد.
من نوع ساده‌ی آن یعنی Empty Views Activity (اکتیویتی خالی) را انتخاب می‌کنم. اکتیویتی‌ای که جز عبارت Hello World در مرکز صفحه هیچ چیز دیگری ندارد. با مفهوم اکتیویتی در ادامه بحث آشنا خواهید شد.

نکته: از نسخه Flamingo به بعد چنانچه گزینه Empty Activity را انتخاب کنید، در مرحله بعد قادر به انتخاب زبان جاوا برای پروژه نخواهید بود. بنابراین لازم است گزینه Empty Views Activity و یا سایر گزینه‌ها را انتخاب کنید.

به مرحله‌ی بعد می‌روم:

انتخاب نام پروژه اندروید ، API Level و زبان پروژه اندروید
انتخاب نام پروژه اندروید ، API Level و زبان پروژه اندروید

Name: در فیلد Name نام اپلیکیشن را وارد می‌کنم. این نام به همراه آیکونی که بعدا برای برنامه‌ی خود انتخاب می‌کنیم، در لیست اپلیکیشن‌های نصب شده‌ی روی دیوایس اندرویدی به کاربر نمایش داده می‌شود.
Package name: هر اپلیکیشن در اپ استورهایی مانند گوگل پلی ، بازار و … بر اساس Package name آن تشخیص داده می‌شود و نام اپلیکیشن ملاک نیست. به عنوان مثال ممکن است چندین اپلیکیشن با نام Calendar به معنی تقویم در مارکت‌ها موجود باشد.
اما Package name برای هر اپلیکیشن یکتاست و اگر نام پکیج من با یک اپلیکیشن دیگر موجود در مارکت یکسان باشد، مارکت اجازه‌ی ثبت و انتشار آن‌را نمی‌دهد. مارکت‌ها بر اساس همین نام پکیج، بروزرسانی‌های منتشر شده برای اپلیکیشن‌های نصب شده روی دیوایس کاربر را بررسی و اعلام می‌کنند.
Package name از دو بخش تشکیل می‌شود. بخش اول یک نام دامنه (Domain name) و بخش دوم نام اصلی برنامه. مزیت استفاده از دامین (دامنه) این است که احتمال تشابه نام پکیج انتخاب شده برای توسعه دهندگان مختلف را به حداقل می‌رساند.
برای مثال من از دامین وب سایت android-studio.ir استفاده می‌کنم که بنا برا الگوی پیشنهادی اندروید استودیو ابتدا پسوند دامین یعنی ir و سپس نام دامین قید شده. بعد از دامین یک نام اضافه می‌شود که معمولا همان نام اپلیکیشن است. البته در انتخاب پکیج نیم هیچ قاعده‌ و الزام خاصی وجود ندارد. برای مثال الزامی به استفاده از دامین نیست و مقدار زیر هم صحیح است:

android_studio.androidcourses

یا قسمت دوم حتما نباید نام اصلی پروژه باشد و می‌تواند هر عبارت دیگری را شامل شود. اگر مالک یک دامین هستید بهتر است آنرا بکار ببرید اما اگر مالک هیچ دامینی نیستید طبق خط بالا یک مقدار دلخواه وارد کنید. از بکار بردن دامینی که در اختیار سایر افراد یا شرکت‌هاست خودداری کنید.
Save Location: این فیلد مربوط به محل ذخیره سازی پروژه اندروید است.
Language: در این قسمت زبان پیش فرض پروژه اندروید را تعیین می‌کنیم. مدتی از معرفی زبان کاتلین (Kotlin) برای اندروید می‌گذرد و از اندروید استودیو ۳٫۳٫۲ انتخاب زبان به wizard پروژه اضافه شده. در نسخه جدید اندروید استودیو یعنی Arctic Fox زبان کاتلین به صورت پیش فرض انتخاب شده که من فعلا با جاوا کار می‌کنم بنابراین انتخاب من Java است.
Minimum SDK: این امکان را به برنامه نویس می‌دهد تا پایین‌ترین نسخه‌ی اندرویدی که اپلیکیشن قرار است پشتیبانی کند را تعیین نماید. لغت Minimum به معنی حداقل بوده و در اینجا به این معنی است که باید تعیین کنم اپلیکیشن من پایین‌ترین نسخه اندرویدی که پشتیبانی خواهد کرد کدام API است.
در زمان تهیه‌ی این آموزش نزدیک به ۹۸% دیوایس‌های اندرویدی که در اختیار کاربران است از API 19 به بالا هستند بنابراین من همین نسخه را انتخاب می‌کنم. علت الزامی بودن تعیین مینیمم این است که در هر نسخه‌ی جدید از اندروید، امکانات و قابلیت‌هایی اضافه می‌شود که اگر این امر را لحاظ نکنیم، ممکن است دارندگان دیوایس با نسخه‌های پایین‌تر در مواردی با مشکلاتی مواجه شوند.
با انتخاب هر گزینه به عنوان مینیمم، اطلاعاتی در مورد آن API و سطح گستردگی آن نمایش داده می‌شود.
همانطور که در تصویر فوق مشاهده می‌کنید، در زمان بروز رسانی این آموزش، با انتخاب API 19 عبارتی در زیر آن ظاهر شده با این مضمون که اپلیکیشن ما بر روی ۹۸٫۱% دستگاه‌های اندرویدی قابل استفاده خواهد بود.
احتمالا می‌پرسید چرا پایین‌ترین نسخه یعنی API 9 را انتخاب نکردم تا اطمینان پیدا کنم ۱۰۰% دیوایس‌ها می‌توانند از این اپلیکیشن استفاده کنند؟ برخی قابلیت‌های اندروید که در نسخه‌های جدید معرفی شده، پیاده سازی آن برای نسخه‌های قدیمی غیر ممکن و یا پیچیده است. بنابراین منطقی نیست من برای تعداد انگشت شمار گوشی و تبلت‌های مربوط به ۱۲ سال پیش بخواهم وقت و انرژی بیشتری صرف کنم یا برخی محدودیت‌ها را بپذیرم.
با کلیک روی گزینه Help me choose به نمودار کاملی در این خصوص دسترسی خواهید داشت.

نکته: در فصل قبل با SDK و همچنین Platform ها آشنا شدیم و دانستیم که با انتشار هر نسخه از اندروید، یک API برای آن منتشر می‌شود. هر پروژه اندروید در سه ویژگی compileSdkVersion، targetSdkVersion و minSdkVersion با Platform ها سروکار دارد.
هنگامی که پروژه جدیدی می‌سازیم دو ویژگی اول یعنی کامپایل و نسخه هدف (Target) برابر با آخرین API نصب شده است و ویژگی Minimum همان API ای است که در این مرحله انتخاب می‌کنیم. البته نیازی به داشتن API مربوط به Minimum SDK در SDK نیست و صرفا آخرین و جدیدترین API استفاده می‌شود.

Use legacy android.support libraries: کتابخانه‌های Support از دو سال اخیر جای خود را به AndroidX داده‌ و به نوعی منسوخ شده‌اند با اینحال گزینه‌ای اینجا تعبیه شده تا در صورت تمایل برنامه نویس، بتوان از کتابخانه support به جای نسخه جدید آن استفاده کرد که البته با توجه به منسوخ شدن آن و عدم پشتیبانی از Play Services جدید، انتخاب این گزینه منطقی نخواهد بود. پیشنهاد می‌کنم مبحث مهاجرت به AndroidX را مطالعه کنید.
ضمن اینکه چنانچه Minimum SDK از API 29 و به بالا انتخاب شود این گزینه غیر فعال خواهد شد.
با کلیک روی دکمه Finish وارد محیط پروژه می‌شوم.
برای کار با پروژه اندرویدی نیاز است تا چندین ابزار و کتابخانه مختلف از مخزن‌های آنلاین گرِیدِل و گوگل دریافت و بر روی سیستم ما ذخیره شود. بنابراین بلافاصله عملیات دانلود ابزارها به صورت خودکار آغاز شده و بسته به سرعت اینترنت شما ممکن است چندین دقیقه زمان ببرد.
ابزاری که بیشترین حجم دانلود را در این مرحله به خود اختصاص می‌دهد، بیلد سیستم Gradle (گریدل) است که حجمی در حدود ۱۱۲ مگابایت دارد. مابقی ابزار بسیار کم حجم بوده و مجموع ترافیک مصرفی در این مرحله را می‌توان در مجموع حدود ۱۲۰ مگابایت براورد کرد.

دریافت و نصب آنلاین و خودکار گریدل و سایر ابزار
دریافت و نصب آنلاین و خودکار گریدل و سایر ابزار

در تصویر فوق مشاهده می‌کنید فایل gradle-7.0.2-bin.zip در حال دریافت است. هر چند ماه یکبار نسخه جدیدی از گریدل منتشر شده و ممکن است در زمانی که شما اولین پروژه را ساخته‌اید یا اندروید استودیو قصد دریافت نسخه جدیدتری از این ابزار را دارد، نسخه‌ای بالاتر از ۷٫۰٫۲ را دریافت نماید.
پس از دریافت Gradle، سایر ابزار نیز دریافت و ذخیره می‌شوند.
البته فرایند دریافت ابزار و کتابخانه‌ها تنها یکبار و در هنگام ساخت اولین پروژه انجام شده و در پروژه‌های بعدی نیازی به دریافت مجدد آنها نیست زیرا ابزار مورد نیاز قبلا در کش اندروید استودیو و بر روی سیستم شما ذخیره شده. مگر آنکه در آینده نسخه جدیدی از ابزار منتشر شده باشد که در اینصورت اندروید استودیو اقدام به دریافت نسخه جدید آنها خواهد نمود.
تا آماده شدن پروژه یا به اصطلاح بیلد (Build) شدن آن مدت زمانی باید صبر کرد که در ساخت اولین پروژه این زمان چند دقیقه بوده و در پروژه‌های بعدی ممکن است ظرف چند ثانیه هم فرایند بیلد انجام شود.
مساله‌ای که در دریافت آنلاین وجود دارد این است که این سرویس برای کاربران ساکن ایران مسدود بوده و بنابراین در این فرایند با مشکل دچار می‌شویم. بنابراین لازم است با استفاده از نرم افزار یا سرویس‌هایی که کار تغییر IP (مانند انواع VPN) را انجام می‌دهند این محدودیت را رفع کنیم.
البته سرویس‌های ایرانی ویژه دور زدن تحریم‌های نرم افزاری وجود دارند که بدون نیاز به نصب هرگونه نرم افزار می‌توان این محدودیت را رفع نمود. توصیه می‌کنم حتما صفحه رفع محدویت‌ها در اندروید استودیو را مطالعه کنید.

تذکر: چه در هنگام ساخت اولین پروژه و چه در آینده که قصد اضافه کردن کتابخانه‌های مورد نیاز خود را به پروژه داشته باشید، رفع محدودیت‌های مربوط به کاربران داخل ایران ممکن است قدری برایتان آزار دهنده باشد که باید صبوری کرده و روش‌های متفاوت را تست و بررسی کنید.
برای مثال اگر سرعت اینترنت شما پایین باشد با فعال کردن ابزار و سرویس‌های تغییر IP ممکن است فرایند دریافت ابزار با اختلال مواجه شده و لازم باشد چندین بار آن را تکرار کنید. چنانچه ابزار به طور کامل دریافت نشود نواری رنگی در بالای ادیتور نمایش داده شده با این مضمون که فرایند Sync شدن پروژه موفقیت آمیز نیست.
در اینصورت از فعال بودن نرم افزار یا سرویس تغییر آی‌پی خود مطمئن شده و با کلیک بر روی گزینه Try again موجود در این نوار، فرایند دریافت ابزار را چندین بار تکرار کنید.
ضمن اینکه در سرویس‌هایی مانند FOD و شکن که در صفحه رفع محدویت‌ها در اندروید استودیو معرفی شده، تنها کانکشن‌هایی از سرورهای پروکسی‌شان عبور می‌کند که جزء دامنه‌های تحریم شده باشد. یعنی مثل برنامه‌های VPN نیست که تمام درخواست‌ها را از سرورهای خود عبور دهند.
بنابراین از آنجایی که تا این لحظه (یعنی هنگام بروزرسانی این آموزش) هنوز وب سایت Gradle.org برای کاربران ایرانی محدود نشده و این دامنه در لیست سرویس دهنده‌های عبور از تحریم‌ها وجود ندارد، ممکن است در هنگام دریافت فایل gradle چنانچه یکی از این سرویس‌ها را فعال کرده باشید، با مشکل مواجه شوید و لازم باشد موقتا سرویس تغییر آی‌پی را غیر فعال کرده تا فایل گریدل دریافت شده و بعدا که برای دریافت سایر ابزارها مجدد ارور گرفتید، سرویس را دوباره فعال کنید.
اگر هم از نرم افزار های VPN عمومی استفاده می‌کنید که مشکلی نبوده و چه گریدل که از سرور gradle.org دریافت می‌شود و چه مابقی ابزاری که از مخازن گوگل دریافت می‌شوند، قاعدتا بدون اختلال دریافت و نصب خواهند شد.
به طور کل اگر در این مرحله گیر کردید نا امید نشده و صبر جناب ایوب را پیش بگیرید! البته بر خلاف سایر ابزار که امکان نصب دستی و آفلاین آنها وجود ندارد، فایل Gradle را می‌توان خارج از محیط اندروید استودیو و از طریق وب سایت رسمی آن دانلود و در پوشه مربوطه جایگذاری کرد که توضیحات لازم در ادامه همین آموزش ذکر شده است.
بنابراین چنانچه اینترنت پایداری در اختیار ندارید می‌توانید گریدل را که حجم نسبتا بالایی داشته را با برنامه‌های مدیریت دانلود، دریافت کرده و فقط مابقی ابزار اندروید استودیو که حجم بسیار کمی دارند را به صورت خودکار در محیط اندروید استودیو و با استفاده از برنامه‌ها و سرویس‌های تغییر آی‌پی دریافت کنید.
نکته: چنانچه قصد دارید گریدل به صورت خودکار و آنلاین توسط خود اندروید استودیو دریافت و نصب شود، ابتدا هیچ ابزار تغییر IP را فعال نکرده و با توجه به در دسترس بودن آن برای داخل ایران اجازه دهید تا این مورد دریافت و نصب شود.
سپس زمانی که اندروید استودیو بخواهد سایر ابزار را دریافت نماید، با توجه به مسدود بودن مخزن آنلاین گوگل، با ارور عدم برقراری اتصال روبرو خواهید شد که کافیست حالا یکی از روش‌های تغییر آی پی را انتخاب کرده و با استفاده از گزینه Try Again نمایش داده شده در نوار رنگی بالای ادیتور و یا گزینه Sync Project with Gradle Files در نوار ابزار اندروید استودیو، برای دریافت مجدد ابزار باقی مانده تلاش کنید:

اخطار Gradle project sync failed
اخطار Gradle project sync failed

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

به خطاهای نمایش داده شده در تب Build دقت کنید.

اخطار Gradle project sync failede>

برای مثال در تصویر فوق اخطاری در خصوص عدم امکان دسترسی به سرور services.gradle.org نمایش داده شده که باعث شده فایل گریدل دانلود نشود. اتصال به اینترنت و همچنین سرویس یا برنامه تغییر IP را بررسی کرده و مجدد تلاش کنید.
هرگاه تمامی کتابخانه‌های مورد نیاز به طور کامل دریافت شد، پیغام finished در تب Build نمایش داده می‌شود:

بیلد (ساخته شدن) موفقیت آمیز پروژه اندرویدی
بیلد (ساخته شدن) موفقیت آمیز پروژه اندرویدی

پروژه با موفقیت ساخته شد و آماده استفاده است.
دو فایل MainActivity.java و activity_main.xml مربوط به همان Activity هستند که هنگام ساخت پروژه از نوع Empty را انتخاب کردم.

بیلد سیستم Gradle (گریدل) چیست؟

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

مشکل Gradle در اندروید استودیو

Gradle یک بیلد سیستم (Build System) متن باز و رایگان است که گوگل در سال ۲۰۱۳ اعلام کرد که از این بیلد سیستم در اندروید استودیو استفاده می‌کند.
بیلد سیستم یا سیستم ساخت، ابزاری ست که طیف وسیعی از عملیات موردنیاز برای توسعه و ساخت یک نرم افزار از جمله ساخت پروژه، پکیج کردن، فشرده سازی منابع، کامپایل کدها و… را انجام می‌دهد.
بهتر است به این چند خط توضیح بسنده نکرده و چند دقیقه‌ای را در خصوص گریدل در وب جستجو و مطالعه کنید.

نصب آفلاین Gradle

چنانچه به هر دلیلی گریدل بصورت خودکار و آنلاین روی اندروید استودیو نصب نشد با خطایی مانند

Could not install gradle distribution from 'https://services.gradle.org/distributions/gradle-7.0.2-bin.zip'

مواجه خواهید شد. اگر از اتصال اینترنت خود مطمئن هستید مجدد پروژه را سینک کنید تا عملیات دانلود تکرار شود. اگر پس از چندبار تکرار مشکل مرتفع نشد می‌توانید فایل گریدل را به صورت دستی و خارج از محیط اندروید استودیو دانلود کرده سپس به محل مورد نظر انتقال دهید.
مسیر زیر را در سیستم عامل ویندوز خود پیدا کنید (این مسیر برای سایر سیستم عامل‌ها متفاوت است):

Users\[UserName]\.gradle\wrapper\dists\gradle-xx

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

محل قرارگیری فایل gradle
محل قرارگیری فایل gradle

برای دانلود فایل گریدل کافیست نام فایل زیپ را گوگل کنید:

دانلود و نصب دستی گریدل در اندروید استودیو
دانلود و نصب دستی گریدل در اندروید استودیو

در صفحه‌ی Gradle Distributions فایل موردنظر را پیدا کرده و دانلود کنید. دقت کنید نام و نسخه‌ی گریدل باید عینا مطابق باشد. برای یافتن سریع لینک، در صفحه‌ی مرورگر Ctrl + F زده و نام فایل زیپ را جستجو کنید:

دانلود و نصب دستی گریدل در اندروید استودیو

یا خیلی ساده تر؛ اگر به یاد داشته باشید لینک دانلود گریدل در کادر خطای build اندروید استودیو نمایش داده شده بود. روی لینک کلیک و کپی (Ctrl + C) کنید.
پس از دانلود فایل، ابتدا اندروید استودیو را ببندید. سپس فایل‌های موجود در فولدر را حذف و فایل زیپ را جایگزین کنید:

دریافت و نصب دستی گریدل در اندروید استودیو

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

نصب آفلاین Gradle در اندروید استودیو

Activity (اکتیویتی) در اندروید

هر پروژه اندروید حداقل یک اکتیویتی دارد. اکتیویتی همان صفحه‌ یا رابط کاربری است که محتوای مدنظر ما را به کاربر نمایش می‌دهد. تعداد اکتیویتی‌های هر اپلیکیشن به میزان و نوع محتوا و البته نظر توسعه دهنده بستگی دارد.
یک اپلیکیشن ساده ممکن است فقط یک اکتیویتی داشته باشد در حالی که یک اپلیکیشن دیگر می‌تواند شامل ده‌ها اکتیویتی باشد. هر اکتیویتی از دو بخش تشکیل می‌شود؛ یک فایل xml و دیگری فایل java (یا kotlin) که اولی شامل اِلِمان‌های تشکیل دهنده‌ی رابط کاربری صفحه و دومی مربوط به کدهای عملکردی مرتبط با آن است. پروژه‌ای که ساختیم به صورت پیش فرض یک اکتیویتی دارد. activity_main.xml و MainActivity.java فایل‌های این اکتیویتی هستند. توضیحات بیشتر در مباحث آتی بیان خواهد شد.

آشنایی با محیط پروژه اندروید استودیو

اندروید استودیو از چند بخش تشکیل شده که هر قسمت وظیفه‌ای به عهده دارد.

محیط برنامه نویسی اندروید استودیو
محیط توسعه اندروید استودیو (Android Studio IDE)

ساختار پروژه

ستون سمت چپ ساختار پروژه اندروید را نشان می‌دهد. نحوه‌ی نمایش ساختار پروژه چند حالت دارد که حالت پیش فرض Android است. در این حالت پروژه به دو قسمت کلی app و Gradle Scripts تقسیم می‌شود:

ساختار پروژه در اندروید استودیو
ساختار پروژه در اندروید استودیو

به صورت مختصر ساختار پروژه را توضیح می‌دهم. توضیحات کامل تر در مباحث بعدی ارائه می‌شود. روی فایل AndroidManifest.xml دوبار کلیک می‌کنم تا فایل در ادیتور باز شود:

AndroidManifest.xml

فایل AndroidManifest پروژه اندرویدی
فایل AndroidManifest پروژه اندرویدی

این فایل حاوی اطلاعات اصلی پروژه است. از جمله نام (خط ۸) و آیکون اپلیکیشن (خط‌های ۷ و ۹)، نام پکیج (خط ۳)، قالب یا theme برنامه (خط ۱۱)، اکتیویتی‌ها و… .
پوشه‌ی java یک پکیج پیش فرض دارد که فایل جاوای اکتیویتی فعلی پروژه (MainActivity) درون آن قرار دارد. دو پکیج دیگر با عنوان AndroidTest و test در قسمت java ساخته شده که مربوط به فرایند تست پروژه بوده و در صورت عدم نیاز می‌توانید این دو مورد را حذف کنید. تمامی کلاس‌های جاوا و کاتلین پروژه درون این فولدر قرار می‌گیرند.
پوشه‌ی res (مخفف Resource به معنی منابع) حاوی منابع مختلفی است:
Drawable: شامل تصاویر مورد استفاده در اپلیکیشن، برخی فایل‌های xml مانند بیت مپ‌ها و … که از طریق کلاس R.drawable قابل دسترسی هستند.
Layout: شامل لایه‌های واسط کاربری (مانند activity_main.xml) که از طریق کلاس R.layout قابل دسترسی می‌باشند.
mipmap: تصاویر مربوط به آیکون اپلیکیشن در این پوشه قرار می‌گیرد.
Values: فایل‌های xml با محتوای آرایه‌ها (strings.xml)، قالب‌ها (themes.xml)، رنگ‌ها (colors.xml)، ابعاد و اندازه‌ها (dimens.xml) و … در این دایرکتوری نگهداری می‌شود.
Gradle Scripts: در این قسمت چند فایل وجود دارد که مربوط به تنظیمات پروژه و اندروید استودیو می‌باشد. دو فایل build.gradle در پروژه وجود دارد. اولی (Project) حاوی اطلاعات کلی از جمله مخازن (Repository) دریافت کتابخانه‌ها است:

فایل build.gradle (Project)
فایل build.gradle (Project)

کتابخانه‌هایی که در پروژه‌های اندرویدی استفاده می‌کنیم از مخزن‌های google و mavenCentral دریافت می‌شوند که به علت تحریم دسترسی به هردو در داخل ایران مسدود شده و به همین دلیل نیاز به تغییر آی‌پی داریم.

فایل build.gradle (Module)
فایل build.gradle (Module)

فایل دوم (Module: app) شامل اطلاعات پایه‌ی پروژه است از جمله Minimum API (minSdkVersion)، Target API (targetSdkVersion) و Compile SDK (compileSdkVersion) و کتابخانه‌هایی که در پروژه استفاده می‌شوند (بلاک dependencies).

نوار ابزار

نوار ابزار اندروید استودیو شامل چند گزینه است:

نوار ابزار اندروید استودیو
نوار ابزار اندروید استودیو

شماره ۱: اجرا (Run) کردن پروژه روی دیوایس مجازی یا حقیقی جهت تست و عیب‌یابی پروژه اندروید.
شماره ۲: قابلیت Apply Changes یک تفاوت با Run دارد. با هربار Run کردن پروژه روی شبیه ساز یا دیوایس واقعی، کل پروژه از ابتدا مجدد کامپایل شده و به دیوایس منتقل می‌گردد که زمان زیادی را تلف می‌کند اما برای پروژه‌ای که در حال اجراست و تغییراتی را اعمال کرده‌ایم، با استفاده از Apply Changes بجای Run تنها بخش‌هایی از پروژه که تغییر کرده به دیوایس منتقل شده و بروزرسانی پروژه با سرعت بیشتری انجام می‌شود.
این گزینه تا نسخه ۳٫۵ اندروید استودیو Instant Run نام داشت که دچار تغییرات و اصلاحاتی شد و از آن پس Apply Changes نامگذاری شد.

نکته: برای استفاده از این قابلیت باید Platform API دیوایس یا دیوایس‌های مدنظر را در SDK نصب داشته باشید. به عنوان مثال اگر می‌خواهید پروژه را روی دیوایس‌های با API 26 و API 27 تست کنید و قصد دارید از این ویژگی بهره ببرید باید API این دو نسخه در SDK موجود باشد.

شماره ۳: برای Sync (سینک یا همگام سازی) پروژه
شماره ۴: شبیه ساز (امولاتور) پیش فرض و داخلی اندروید استودیو (AVD)
شماره ۵: دسترسی به SDK Manager

نکته: در روند توسعه و ساخت اپلیکیشن حتما با خطاها و مشکلاتی روبرو خواهید شد. در اولین قدم برای حل مشکل، متن خطا را مطالعه و ترجمه کنید. اگر در درک زبان انگلیسی مشکل دارید از مترجم‌های آفلاین و آنلاین کمک بگیرید.
با دیدن یک خطا از کوره در نروید! ضمن اینکه بروز خطا به معنی ایراد در سیستم عامل و رایانه شما نیست. بنابراین انتظار نداشته باشید با حذف و نصب مجدد اندروید استودیو یا تعویض سیستم عامل خطا رفع شود. ببینید اندروید استودیو از شما چه خواسته‌ای دارد. اگر مفهوم خطا را درک نکردید آنرا در گوگل جستجو کنید. مشکل شما با احتمال نزدیک به ۱۰۰% قبلا مشکل ده‌ها و صدها نفر دیگر بوده.
پس به احتمال زیاد به جواب می‌رسید. بیشتر سوالات و مشکلات در حوزه برنامه نویسی و توسعه برنامه در وب سایت stackoverflow.com مطرح می‌شود. با سرچ ارور احتمالا اولین لینک مربوط به همین سایت است. لینک را باز کنید و پاسخ‌ها را با دقت مطالعه کنید. یا از وب‌سایت‌های فارسی کمک بگیرید. در وب‌سایت ما هم در صفحه‌ مشکلات و پرسش‌های رایج اندروید استودیو تا حد امکان مشکلات متداول کاربران با راه حل آن بررسی شده است.
پرسش مستقیم و طرح اشکال را برای مرحله‌ی آخر بگذارید. در این صورت زمان کمتری برای رسیدن به جواب صرف می‌کنید و لازم نیست چند ساعت یا چند روز را منتظر پاسخ من و بقیه بمانید!
دانلود فایل این آموزش با فرمت PDF
تعداد صفحات : ۲۰
حجم : ۱٫۵ مگابایت
قیمت : رایگان
تاریخ بروزرسانی آموزش : ۱۴۰۲/۰۳/۱۵
دانلود رایگان با حجم ۱٫۵ مگابایت لینک کمکی
این مطلب چقدر برایتان مفید بود؟ لطفا امتیاز دهید
4.1/5 - (47 امتیاز)
پرسش‌ها و دیدگاه‌های کاربران
دوره آموزش برنامه نویسی اندروید
دوره آموزش برنامه نویسی اندروید

با دریافت این دوره به تمامی آموزش‌های غیر رایگان و رایگان موجود در وب سایت دسترسی دارید که تخفیفی برای آموزش‌های غیر رایگان نیز درنظر گرفته شده. این پکیج به دو صورت دانلودی و ارسال پستی ارائه می‌گردد.
آموزش‌های اندروید استودیو در دو دسته «پایه» و «تکمیلی» منتشر می‌شوند.
آموزش‌های پایه شامل مباحث اصلی و ضروری و آموزش‌های تکمیلی مطالبی است که می‌بایست در کنار مطالب اصلی بررسی شود.
با خرید این دوره، به تمامی آموزش‌های غیر رایگانی که در آینده منتشر می‌شود نیز به صورت رایگان دسترسی خواهید داشت!

یک دیدگاه بنویسید

پرسش‌های زیر تایید و پاسخ داده نـــخواهند شد:
۱: جزء موارد مطرح شده در صفحات مشکلات و پرسش‌های رایج و بروزرسانی‌های محتوای آموزشی باشد
۲: سوال قبلا توسط کاربران در دیدگاه‌ها مطرح و پاسخ داده شده باشد
۳: پرسش خارج از مبحث آموزشی موجود در این صفحه باشد