ساخت پروژه در اندروید استودیو، بررسی محیط توسعه و ساختار کلی پروژه
در جلسه آموزش نصب اندروید استودیو با نحوهی نصب محیط توسعه 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 در مرکز صفحه هیچ چیز دیگری ندارد. با مفهوم اکتیویتی در ادامه بحث آشنا خواهید شد.
به مرحلهی بعد میروم:
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 به نمودار کاملی در این خصوص دسترسی خواهید داشت.
هنگامی که پروژه جدیدی میسازیم دو ویژگی اول یعنی کامپایل و نسخه هدف (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 را میتوان خارج از محیط اندروید استودیو و از طریق وب سایت رسمی آن دانلود و در پوشه مربوطه جایگذاری کرد که توضیحات لازم در ادامه همین آموزش ذکر شده است.
بنابراین چنانچه اینترنت پایداری در اختیار ندارید میتوانید گریدل را که حجم نسبتا بالایی داشته را با برنامههای مدیریت دانلود، دریافت کرده و فقط مابقی ابزار اندروید استودیو که حجم بسیار کمی دارند را به صورت خودکار در محیط اندروید استودیو و با استفاده از برنامهها و سرویسهای تغییر آیپی دریافت کنید.
سپس زمانی که اندروید استودیو بخواهد سایر ابزار را دریافت نماید، با توجه به مسدود بودن مخزن آنلاین گوگل، با ارور عدم برقراری اتصال روبرو خواهید شد که کافیست حالا یکی از روشهای تغییر آی پی را انتخاب کرده و با استفاده از گزینه Try Again نمایش داده شده در نوار رنگی بالای ادیتور و یا گزینه Sync Project with Gradle Files در نوار ابزار اندروید استودیو، برای دریافت مجدد ابزار باقی مانده تلاش کنید:
به طور کلی هرگاه به هر دلیلی بیلد شدن پروژه متوقف شد، پس از رفع خطای احتمالی باید مجدد پروژه را Sync (سینک به معنی همگام سازی) کنید. در صفحه پرسشها و مشکلات رایج توضیحات لازم در خصوص ارورها ارائه شده.
به خطاهای نمایش داده شده در تب Build دقت کنید.
e>
برای مثال در تصویر فوق اخطاری در خصوص عدم امکان دسترسی به سرور services.gradle.org نمایش داده شده که باعث شده فایل گریدل دانلود نشود. اتصال به اینترنت و همچنین سرویس یا برنامه تغییر IP را بررسی کرده و مجدد تلاش کنید.
هرگاه تمامی کتابخانههای مورد نیاز به طور کامل دریافت شد، پیغام finished در تب Build نمایش داده میشود:
پروژه با موفقیت ساخته شد و آماده استفاده است.
دو فایل MainActivity.java و activity_main.xml مربوط به همان Activity هستند که هنگام ساخت پروژه از نوع Empty را انتخاب کردم.
بیلد سیستم 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 Distributions فایل موردنظر را پیدا کرده و دانلود کنید. دقت کنید نام و نسخهی گریدل باید عینا مطابق باشد. برای یافتن سریع لینک، در صفحهی مرورگر Ctrl + F زده و نام فایل زیپ را جستجو کنید:
یا خیلی ساده تر؛ اگر به یاد داشته باشید لینک دانلود گریدل در کادر خطای build اندروید استودیو نمایش داده شده بود. روی لینک کلیک و کپی (Ctrl + C) کنید.
پس از دانلود فایل، ابتدا اندروید استودیو را ببندید. سپس فایلهای موجود در فولدر را حذف و فایل زیپ را جایگزین کنید:
حالا اندروید استودیو را باز کرده و مجدد پروژه را سینک کنید. اینبار گریدل از فایل محلی نصب میشود. در واقع فایل زیپ از حالت فشرده خارج شده و یک پوشه با همان نام ایجاد شده است:
Activity (اکتیویتی) در اندروید
هر پروژه اندروید حداقل یک اکتیویتی دارد. اکتیویتی همان صفحه یا رابط کاربری است که محتوای مدنظر ما را به کاربر نمایش میدهد. تعداد اکتیویتیهای هر اپلیکیشن به میزان و نوع محتوا و البته نظر توسعه دهنده بستگی دارد.
یک اپلیکیشن ساده ممکن است فقط یک اکتیویتی داشته باشد در حالی که یک اپلیکیشن دیگر میتواند شامل دهها اکتیویتی باشد. هر اکتیویتی از دو بخش تشکیل میشود؛ یک فایل xml و دیگری فایل java (یا kotlin) که اولی شامل اِلِمانهای تشکیل دهندهی رابط کاربری صفحه و دومی مربوط به کدهای عملکردی مرتبط با آن است. پروژهای که ساختیم به صورت پیش فرض یک اکتیویتی دارد. activity_main.xml و MainActivity.java فایلهای این اکتیویتی هستند. توضیحات بیشتر در مباحث آتی بیان خواهد شد.
آشنایی با محیط پروژه اندروید استودیو
اندروید استودیو از چند بخش تشکیل شده که هر قسمت وظیفهای به عهده دارد.
ساختار پروژه
ستون سمت چپ ساختار پروژه اندروید را نشان میدهد. نحوهی نمایش ساختار پروژه چند حالت دارد که حالت پیش فرض Android است. در این حالت پروژه به دو قسمت کلی app و Gradle Scripts تقسیم میشود:
به صورت مختصر ساختار پروژه را توضیح میدهم. توضیحات کامل تر در مباحث بعدی ارائه میشود. روی فایل AndroidManifest.xml دوبار کلیک میکنم تا فایل در ادیتور باز شود:
AndroidManifest.xml
این فایل حاوی اطلاعات اصلی پروژه است. از جمله نام (خط ۸) و آیکون اپلیکیشن (خطهای ۷ و ۹)، نام پکیج (خط ۳)، قالب یا 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) دریافت کتابخانهها است:
کتابخانههایی که در پروژههای اندرویدی استفاده میکنیم از مخزنهای google و mavenCentral دریافت میشوند که به علت تحریم دسترسی به هردو در داخل ایران مسدود شده و به همین دلیل نیاز به تغییر آیپی داریم.
فایل دوم (Module: app) شامل اطلاعات پایهی پروژه است از جمله Minimum API (minSdkVersion)، Target API (targetSdkVersion) و Compile SDK (compileSdkVersion) و کتابخانههایی که در پروژه استفاده میشوند (بلاک dependencies).
نوار ابزار
نوار ابزار اندروید استودیو شامل چند گزینه است:
شماره ۱: اجرا (Run) کردن پروژه روی دیوایس مجازی یا حقیقی جهت تست و عیبیابی پروژه اندروید.
شماره ۲: قابلیت Apply Changes یک تفاوت با Run دارد. با هربار Run کردن پروژه روی شبیه ساز یا دیوایس واقعی، کل پروژه از ابتدا مجدد کامپایل شده و به دیوایس منتقل میگردد که زمان زیادی را تلف میکند اما برای پروژهای که در حال اجراست و تغییراتی را اعمال کردهایم، با استفاده از Apply Changes بجای Run تنها بخشهایی از پروژه که تغییر کرده به دیوایس منتقل شده و بروزرسانی پروژه با سرعت بیشتری انجام میشود.
این گزینه تا نسخه ۳٫۵ اندروید استودیو Instant Run نام داشت که دچار تغییرات و اصلاحاتی شد و از آن پس Apply Changes نامگذاری شد.
شماره ۳: برای Sync (سینک یا همگام سازی) پروژه
شماره ۴: شبیه ساز (امولاتور) پیش فرض و داخلی اندروید استودیو (AVD)
شماره ۵: دسترسی به SDK Manager
با دیدن یک خطا از کوره در نروید! ضمن اینکه بروز خطا به معنی ایراد در سیستم عامل و رایانه شما نیست. بنابراین انتظار نداشته باشید با حذف و نصب مجدد اندروید استودیو یا تعویض سیستم عامل خطا رفع شود. ببینید اندروید استودیو از شما چه خواستهای دارد. اگر مفهوم خطا را درک نکردید آنرا در گوگل جستجو کنید. مشکل شما با احتمال نزدیک به ۱۰۰% قبلا مشکل دهها و صدها نفر دیگر بوده.
پس به احتمال زیاد به جواب میرسید. بیشتر سوالات و مشکلات در حوزه برنامه نویسی و توسعه برنامه در وب سایت stackoverflow.com مطرح میشود. با سرچ ارور احتمالا اولین لینک مربوط به همین سایت است. لینک را باز کنید و پاسخها را با دقت مطالعه کنید. یا از وبسایتهای فارسی کمک بگیرید. در وبسایت ما هم در صفحه مشکلات و پرسشهای رایج اندروید استودیو تا حد امکان مشکلات متداول کاربران با راه حل آن بررسی شده است.
پرسش مستقیم و طرح اشکال را برای مرحلهی آخر بگذارید. در این صورت زمان کمتری برای رسیدن به جواب صرف میکنید و لازم نیست چند ساعت یا چند روز را منتظر پاسخ من و بقیه بمانید!
تعداد صفحات : ۲۰
حجم : ۱٫۵ مگابایت
قیمت : رایگان
تاریخ بروزرسانی آموزش : ۱۴۰۲/۰۳/۱۵
دانلود رایگان با حجم ۱٫۵ مگابایت لینک کمکی
با سلام وعرض ادب
واقعا خسته نباشید. میدونم حوصله و وقت میخواد اموزش جدید گذاشتن. خودم هم سایت دارم.
من یه مشکل دارم هنگام ساخت پروزه جدید همه اطلاعات اولیه رو درست وارد کردم ولی بعد از انتخاب نسخه اندروید که میرم مرحله بعد گیر میکنه. ممنون میشم کمک کنید.
اینم عکسشه…
http://8pic.ir/images/p8g9a8mau737i1xce2tv.jpg
نسخه bundle رو تست کنید
سلام وقت بخیر.من تصویر موبایل رو ندارم.میخواستم اسکرین شات روبه جمیلتون بفرستم که اونم میگه نامعتبره.
سلام. فارسی یا انگلیسی سرچ کنید جاهای زیادی بحث شده حتما
سلام,برای برنامه نویسی برای اندروید باید کد نویسی بلد باشیم؟مثلا بازی یا نرم افزار ویرایش عکس
اگه لازمه میشه بگین چند ماه طول میکشه تقریبا یاد گرفت؟حدودی بگین
سلام بله
برای بازی باید با موتورهای گیم مثل یونیتی هم کار بکنید. زمانش بستگی داره به وقتی که میذارید در روز. تو یه هفته هم میشه مقدماتو یاد گرفت.
سلام.دوساعته منتظرم هنوز پروژه رو نساخته گراگل رسولو میکنه.. gragle resolve … موردش هی عوض میشه!!!!
سلام،خسته نباشید
من طبق اموزشای شما کامل برنامه را نصب کردم و موقع ساخت پروژه بعداز انتخاب پلت فرم ها و گوشی یه صفحه میاد که نوشته installing Requested Components و خیلی هم میمونه تو این صفحه!! به نتم وصلم .چکا رباید کرد ایا؟؟
سلام. اسکرین شات بدید
سلام
نسخه باندل را نصب کردم کردم درست شد،فکر میکنم مشکل از sdkاون بود،چون وقتی نسخه باندل را نصب کردم ادرس sdk ان،همون ادرسی بود که من sdk را ساخنم و انگار این مسیر سیو شده توو باز همان مشکل پیش اومد وقتی که دیدم همونه عوض کردم و ادرس sdkمربوط به خود نسخه باندل را گذاشتم درست اجرا شد برنامه 🙂
حالا بازم شات را میفرستم به ایمیلتون.
خیللیی ممنوون بابت اموزشاتون 🙂
آقا سلام. منم این مشکل گیر کردن توی Installing Required Components رو داشتم. ظاهرا مشکل از تحریم هاست آی پی خودتون رو به خارج از کشور تغییر بدید. توجه کنید که پس از اعمال تنظیمات برنامه باید یکبار آنرا ببنید و مجددا باز کنید.
سلام
بله نمیش میده مثلا خطای divide by zero رخ داده توی لاگ ولی نمیگه کجای برنامه دقیقا کدوم خط !!!
سلام من قبلا توی محیط دات نت مایکروسافت کد #C
کار کردم اونجا وقتی نرم افزار رو ران میکنی اگر خطی از کد باگ داشته باشه روی همون خط اجرای کد متوقف میشه و خطا نمایش داده میشه حتی وقتی برنامه رو توی سیستم مقصد اجرا میکنیم هم باز دات نت خطا رو نمایش میشه حتی توی محیط دسکتاپ فکر کنم جاوا هم کاملا نمایش میشده خطا رو
چرا توی محیط اندروید استودیو فقط برنامه کرش میکنه هیچ خطایی و کد دارای خطا مشخص نمیشه!!!!!!!!!!!!!
دوست عزیز تو محیط اندروید استودیو هم نمایش میده خطا رو
سلام خسته نباشید
من دنبال یک منبع آموزشی جامع اندروید استودیو به زبان فارسی هستم هرچی سرچ کردم ندیدم چیزی. سایت شماهم آموزش خیلی محدودی داده میتونید راهنماییم کنید از چه منبعی استفاده کنم؟؟
تشکر
و یه سوال دیگه آموزش خود زبان اندروید با آموزش برنامه اندروید استودیو متفاوته؟؟
یعنی اگه آموزش این برنامه رو داشته باشم دیگه نیازی به کتابهای آموزشی زبان اندروید هست یا خیر؟؟
اندروید زبان برنامه نویسی اختصاصی نداره. برای توسعه اپلیکیشن در محیط اندروید استودیو باید زبان جاوا رو آشنا باشید
سلام. سرچ کنید منبع فارسی زیاده. هم رایگان هم فروشی
سلام.اموزشاتون واقعا عالین مرسی.لطفا بیشتر آموزش بزارین
سلام
در قسمت Generate Signed APK به مشکل برخوردم
پروژمو تبدیل نمیکنه و خطا میده
http://rozup.ir/view/1428030/Untitled.png
ممنون میشم جوابشو به ایمیلم بفرستید چون خیلی لازم دارم
سلام. متن ارور رو سرچ کنید جواب زیاده
ممنون.
منتهاش می بینم که زمان زیادی بین پست هات هست.
سلام دوست عزیز خیلی خوش حالم سایت فارسی زبان جالبی تو این مورد وجود داره………..من یک ماه شروع کردم به خوندن جاوا توی کلاس خیلی هم پیشرفت کردم چطوری میتونم کامل و عالی پیش برم که برنامه نویس حرفه ای بشم و باید چه تمریناتی انجام بدم وخلاصه راهنمایی کامل کنید خیلی از سایتتون خوشم اومد گفتم شاید بتونید راهنمایی دقیق کنید سپاس
سلام
قدم اول که همو جاوا هست که شروع کردین. بعد هم آموزشهای برنامه نویسی اندروید رو دنبال کنید. چند مورد که تو سایت خودمون هست که البته کامل شدنش زمان میبره و اگه خواستید فراتر از سطحی که تو وب ما موجود هست کار کنید، با یه سرچ ساده سایتای زیادی رو میتونید پیدا کنید که آموزش میذارن
ممنون مهندس. از این وقتی که برای توسعه ی معلوماتت میزاری.
خسته نباشید ویژه بخاطر زحمتی که برای تهیه این آموزش ها محتمل میشید.
سلام خسته نباشید
یه سوال داشتم برا یادگیری اندروید حتما باید جاوا رو کامل بلد باشیم ؟؟
اخه من سی شارپ و سی پلاس پلاس کامل مسلطم اما تاحالا با جاوا کار نکردم آیا به مشکل برمیخورم؟/
سلام. اگه بخواین با اندروید استودیو کار کنین بله لازمش جاواس. اما اینکه کامل باید یاد بگیرید لزومی نداره. حداقل ابتدای کار
در همین حد آموزش جاوا داخل سایت خودمون کفایت می کنه. به خصوص اینکه شما قبلا با زبان سی کار کردین و خیلی سریع میتونین جاوا رو یاد بگیرین
ارورش هم همینه که اقا محمد نوشته (بالای نظر من).
لطفا کمک کنید
کد
repositories {
maven { url ‘http://repo1.maven.org/maven2’ }
}
رو داخل فایل build.gradle اضافه و مجدد sync کنید
سلام
من این کد رو اضافه کردم ولی هیچ تغییری نکرد.
را حل دیگه ایی نداره؟
مطلب جدیدی که منتشر کردم رو مطالعه بفرمایید :
https://android-studio.ir/problems-and-questions/
سلام من چند روزه دارم سعی میکنم یه پروژه تو امولاتور یا با گوشی امتحان کنم ولی اجرا نمیشه.یک ارور میاد پایین صفحع
Error:(23, 17) Failed to resolve: junit:junit:4.12
سلام. موقع اجرا با خطای بالا مواجه می شم. لطفا کمکم کنید. 🙁
سلام
تو دیدگاههای این پست یا دو پست دیگه پاسخ داده شده
سلام..این مشکل رو هم دارم..تو پستهای دیگه ندیدم جوابی.. باید API ورژن های ۱۷ و ۲۳ نصب کنم؟ من اینارو قبلا نصب کردم.. الان نمیدونم چیکار کنم.. ممنون میشم راهنمایی کنید
خیر
کد
repositories {
maven { url ‘http://repo1.maven.org/maven2’ }
}
رو داخل فایل build.gradle اضافه و مجدد sync کنید
با سلام و با تشکر از آموزش خوبتون.
من وقتی می خوام پروژه رو ران کنم یه اروری میده با این مضمون
app_debugApk
لطفا کمکم کنید
اسکرین شات بدید از ارور کامل
سلام چطوری میشه Button رو به یک Activityکه خودم ساختم متصل کنم که مثلا میزنم رو دکمه Button که ساختم بره صفحه بعدی که خودم دستور دادم بره؟
لطفا جواب بدید
ممنوونم دوست عزیز
خیلی مرام گذاشتین دستتون درد نکنه
سلام
آقا شما با این اسم به این مشهوری یک سایت ساختید مطلب کافی هم روش نمی ذارید.
با یک چند نفر همکاری کنید مطلب خوب بذارید .
از این اسم به درستی استفاده کنید .
سلام
خسته نباشی
خیلی عالی بود، خیلی کمک کرد
فقط اگه میشه نوشتن یه برنامه آندروید را به صورت کامل توضیح بده
بازم ممنون
سلام خسته نباشید. می خواستم بدونم توی اندروید استودیو با چه زبان های برنامه نویسی میشه برنامه ساخت؟
آیا سی شارپ هم ساپورت می کنه؟
سلام
خیر فقط با جاوا میشه تو این محیط برنامه نوشت
پروژه ساختم ولی اصلا تصویر موبایل نمیاد
http://8pic.ir/images/dnferh0ipi41xchbaelf.png
یه پروژه جدید تعریف کنید ببینید بازم مشکل داره یا نه
سلام منم همین مشکل رو دارم … پروژه جدید هم ساختم ولی درست نمیشه.. باید چیکار کنم؟
با سلام میخواستم بدونم آموزش ها از کی دوباره سر گرفته میشه
خیلی منتظریم
دست شما درد نکنه
با سلام
پوزش بابت وقفه ای که در تولید محتوا ایجاد شد. ان شا الله تا آخر این هفته آموزش بعدی آماده میشه و سعی بر این خواهد بود هر هفته یه آموزش جدید اضافه بشه.
بهترین سایتی که در مورد اندروید مخصوصا استدیو باشه سایت شماست خدا اجرتون بده منتظر آموزش های دیگه هستیم
سلام ممنون ازخودتون و آموزش هاتون و همچنین سایتون
مامنتظر آموزش های بعدی هستیم
سلام و خسته نباشید
با توجه به اینکه فعلا مرجع فارسی برای آموزش اندروید استودیو وجود نداره، آیا استفاده از help نرم افزار میتونه ما رو از منابع دیگه بی نیاز کنه؟
از سایت های آموزشی انگلیسی زبان کدوم یکی رو توصیه می کنید؟
سپاس.
سلام
خیر باید از منابع آموزشی استفاده کنید.
انگلیسی : androidhive گزینه خوبیه. بقیه هم زیاد هستن. سرچ بکنید
با سلام خدمت ادمین محترم من یه مشکلی دارم که راه حلشو هیچ جاپیدا نکردم اونم اینه که وقتی پروژه ای جدید میسازم او تصویر موبایل اصلا نمیاد یعنی اصلا اون موبایله نیست و من هیچ کاری نمی تونم بکنم همش مینویسه
Gradle sync error
میشه بگید راه حل کارم چیه؟ اینترنتم هم وصله ولی درست نمیشه.
لطفا یه تصویر از محیط و ارور ایمیل کنید
mehdi.motahhari [ @ ] gmail.com
سلام
مشکل منم همینه لطفا راهنمایی کنید
سلام.اتفاقا منم همین مشکلو دارم.اینم لینک اسکرین شات ارورم
http://uupload.ir/files/qxce_untitled.png
فقط مسیر نصب android-sdk من تو پروگرم فایله.
دست شما درد نکنه
سلام من فرستادم اومد شاید پیام یکی از آپدیت های نسخه جدید هست
فرستادم ب ایمیلتون
با سلام و خسته نباشید
تو سایت های ایرانی در زمینه آموزش اندروید استدیو سایت شما بهترین سایتی هست که دیدم و آموزش هاتون خیلی کامل هست لطفا ادامه آموزش هارو هم قرار بدین بی صبرانه منتظر هستم
سلام. ممنون از سایت خوبتون
من هم به مشکل علی آقا خوردم…
من هر وقت blank activity رو می زنم میگه مینیمم API مورد نیاز ۱۴ هست. ینی چی؟
چطوری اسکرین شات رو براتون بفرستم؟
سلام
به ایمیل بنده بفرستید
mehdi.motahhari [ @ ] gmail.com
ممنون از پاسخ گویی سریع تون 🙂
سلام.این مشکل واس منم بیش اومد.شما باید API 19 رو دانلود کنی.
سلام
بله باید حداقل یه api 14 و ۱۴ به بالا هم نصب شده باشه
ممنونم درست شد 🙂
سلام منم دقیقا مشکل همین علی اقا رو درام میگه api 14 نیاز هستش و من ۸ رو دارم مشکل چیه
blank akctivity ضروری است؟ برای من هم به ای پی آی ۱۴ مگه نیاز است
لطفا اسکرین شات ارور رو به ایمیل بنده بفرستید
mehdi.motahhari [ @ ] gmail.com
با سلام خدمت شما
من هر وقت blank activity رو می زنم میگه مینیمم API مورد نیاز ۱۴ هستش . ولی من API 8 رو دارم . مشکل از کجاست؟
با تشکر
سلام
یه اسکرین شات از صفحه تعیین sdk بدید
سلام و عرض ادب
یعنی انقده عالی بود که ی عالمه ممنون خدا اجرت بده
بخصوص اینکه آخرش آموزش رو بصورت pdf هم گذاشتین.
تشکر بی کران.
عالی عالی عالی فقط حیف دیر به دیر مطلب میذارید
و همچنین سپاس بی کران شما را ،که علم خود رایگان و بی منت نشر میدهید و بسی جای قدر دانی دارد.
و امید است که همچنان رایگان بماند،انشاا…
هرچند جا دارد به رسم معرفت دوستانی که از توانی برخوردار هستند برای پیشرفت و ارایه هرچه بهتر آموزش ها،کمک کننند.
سلام مهندس
ما همچنان بی صبرانه منتظر ادامه مطالب هستیم
ممنون از لطف سرشار شما
موفق و پیروز باشید.
سلام امید وارم ادامه داشته باشه
موفق باشید
مطالب و آموزشتون فوق العاده است،من کاملا سوپرایز شدم.
مرررسی،خدا قوت
سلام ممنون خیلی کامل و جامع آموزش میدین لطفا فقط سرعتشو خیلی بیشتر کنید .ممنونم
با سلام.من دوره ی مقدماتی جاوا رو تموم کردم.بی صبرانه منتظر ادامه آموزش ها هستم.
ببخشید من واقعا موندم چیکار کنم طبق آموزشای شما اندروید استدیو رو برای برنامه نویسی نصب کردم ولی بیشتر آموزشای نت مربوط میشه به بیس های دیگه لطف میکنید یکم زودتر یک آموزش پایه ای در مورد حداقل کامپایل بزارین ممنون
حتما دوست عزیز
آموزشها با سرعت بیشتر از هفته گذشته در حال آماده سازی هست
با تشکر از مطالب مفیدتون . لطفا بگید که ایا فقط android studio برای ساخت اپ موبایل کاربردیه یا AIDE هم محیط خوبیه برای برنامه نویسی اندروید؟
برای توسعه اندروید محیط ها و زبان های متعددی در دسترس هست اما چیزی که خود گوگل پشتیبانی می کنه همین اندروید استودیو و زبان جاوا هست
سلام
خسته نباشید سایت به باحالی سایت شما ندیده بودم .
با این که دیر مطلب میزارین ولی خیلی جامع و کامل میزارین.
ممنون
این یکی دو ماه گذشته به دلایلی فرصت تهیه منظم آموزشها وجود نداشت و اگه خدا بخواد از این به بعد سعی میشه حداقل هفته ای یک آموزش جدید اضافه بشه
سلام خیلی عالیه لطفا آموزش های بیشتر و سریع تر بگذارید
ممنونم
بسیار بسیار از مطالب خوبتون ممنونم!
لطفا آموزش های مبتدی اندروید استادیو رو هم قرار بدید!
خواهش می کنم دوست عزیز
مطالبی که قرار داده میشه با این فرض هست که مخاطب هیچ تجربه ای در برنامه نویسی نداشته قبلا