برای اینکه ببینید برنامه شما روی یک دستگاه چگونه به نظر میرسد و چگونه رفتار میکند، باید آن را بسازید و اجرا کنید. اندروید استودیو پروژههای جدیدی را راهاندازی میکند تا بتوانید برنامه خود را تنها با چند کلیک روی یک دستگاه مجازی یا فیزیکی مستقر کنید.
این مرور کلی بر نحوه استفاده از اندروید استودیو برای ساخت و اجرای برنامه شما برای آزمایش و اشکالزدایی تمرکز دارد. برای کسب اطلاعات در مورد نحوه استفاده از اندروید استودیو برای ساخت برنامه خود به گونهای که بتوان آن را برای کاربران منتشر کرد، به بخش ساخت برنامه برای انتشار برای کاربران مراجعه کنید. برای اطلاعات بیشتر در مورد مدیریت و سفارشیسازی نسخه ساخته شده خود با یا بدون اندروید استودیو، به بخش پیکربندی نسخه ساخته شده خود مراجعه کنید.
ساخت و اجرای اولیه
برای ساخت و اجرای برنامه خود، مراحل زیر را دنبال کنید:
- در نوار ابزار، برنامه خود را از منوی run configurations انتخاب کنید.
در منوی دستگاه هدف، دستگاهی را که میخواهید برنامهتان روی آن اجرا شود، انتخاب کنید.

اگر هیچ دستگاهی پیکربندی نشده است، باید یا یک دستگاه مجازی اندروید برای استفاده از شبیهساز اندروید ایجاد کنید یا یک دستگاه فیزیکی را متصل کنید .
روی اجرا کلیک کنید
.
اندروید استودیو در صورتی که سعی کنید پروژه خود را روی دستگاهی که دارای خطا یا هشدار مرتبط با آن است، اجرا کنید، به شما هشدار میدهد. آیکونوگرافی و تغییرات سبکی، بین خطاها (انتخابهای دستگاه که منجر به پیکربندی خراب میشوند) و هشدارها (انتخابهای دستگاه که ممکن است منجر به رفتار غیرمنتظرهای شوند اما هنوز قابل اجرا هستند) تمایز قائل میشوند.
نظارت بر روند ساخت
برای مشاهده جزئیات مربوط به فرآیند ساخت، View > Tool Windows > Build را انتخاب کنید یا روی Build کلیک کنید.
در نوار ابزار پنجره. پنجره ابزار Build ، وظایفی را که Gradle برای ساخت برنامه شما اجرا میکند، همانطور که در شکل 1 نشان داده شده است، نمایش میدهد.

- تب همگامسازی: وظایفی را که Gradle برای همگامسازی با فایلهای پروژه شما اجرا میکند، نمایش میدهد. مشابه تب Build Output ، اگر با خطای همگامسازی مواجه شدید، عناصر موجود در درخت را انتخاب کنید تا اطلاعات بیشتری در مورد خطا دریافت کنید. همچنین خلاصهای از تأثیر دانلود را نمایش میدهد تا مشخص شود که آیا دانلودهای وابستگی تأثیر منفی بر ساخت شما دارند یا خیر.
- تب Build Output: وظایفی را که Gradle اجرا میکند به صورت یک درخت نمایش میدهد، که در آن هر گره یا یک مرحله ساخت یا گروهی از وابستگیهای وظیفه را نشان میدهد. اگر خطاهای زمان ساخت یا کامپایل دریافت کردید، درخت را بررسی کنید و یک عنصر را برای خواندن خروجی خطا انتخاب کنید، همانطور که در شکل 2 نشان داده شده است.

شکل ۲. تب Build Output را برای یافتن پیامهای خطا بررسی کنید. - تب Build Analyzer: اطلاعات تحلیل عملکرد ساخت را در مورد ساخت شما ارائه میدهد. برای اطلاعات بیشتر به بخش عیبیابی عملکرد ساخت با Build Analyzer مراجعه کنید.
- راهاندازی مجدد: آخرین عملیات ساخت را دوباره انجام میدهد. اگر آخرین بار Build > Make Selected Module را اجرا کرده باشید، ماژول فعلی ساخته میشود. اگر آخرین بار Build > Make Project را اجرا کرده باشید، فایلهای ساخت میانی برای همه ماژولهای پروژه شما ایجاد میشود.
- فیلترها: هشدارها، وظایف یا هر دو را که با موفقیت انجام شدهاند، فیلتر میکند. این میتواند یافتن مشکلات در خروجی را آسانتر کند.
اگر نسخههای ساخت شما از product flavors استفاده میکنند، Gradle وظایفی را نیز برای ساخت آن product flavors فراخوانی میکند. برای مشاهده لیست تمام وظایف ساخت موجود، روی View > Tool Windows > Gradle کلیک کنید یا روی Gradle کلیک کنید.
در نوار پنجره ابزار.
اگر در طول فرآیند ساخت خطایی رخ دهد، Gradle ممکن است گزینههای خط فرمان مانند --stacktrace یا --debug را برای کمک به حل مشکل به شما پیشنهاد دهد. برای استفاده از گزینههای خط فرمان در فرآیند ساخت خود:
- پنجره تنظیمات یا تنظیمات برگزیده را باز کنید:
- در ویندوز یا لینوکس، از نوار منو، گزینه File > Settings را انتخاب کنید.
- در macOS، از نوار منو، Android Studio > Preferences را انتخاب کنید.
- به مسیر ساخت، اجرا، استقرار > کامپایلر بروید.
- در فیلد متنی کنار گزینههای خط فرمان ، گزینههای خط فرمان خود را وارد کنید.
- برای ذخیره و خروج، روی تأیید کلیک کنید.
Gradle این گزینههای خط فرمان را دفعهی بعدی که سعی در ساخت برنامهی خود دارید، اعمال میکند.
ساخت و اجرا با استفاده از عامل هوش مصنوعی
عامل هوش مصنوعی در اندروید استودیو به ابزارهایی دسترسی دارد که به آن اجازه میدهد برنامه شما را بسازد و مستقر کند و سپس وضعیت برنامه را از طرف شما تأیید کند. وقتی از حالت عامل استفاده میکنید، عامل میتواند وظایفی مانند موارد زیر را انجام دهد:
- برنامه خود را روی یک دستگاه فیزیکی متصل یا شبیهساز مستقر کنید .
- صفحه را بررسی کنید و برای تأیید تغییرات رابط کاربری، از صفحه عکس بگیرید.
- Logcat را برای خطاهای زمان اجرا یا پیامهای لاگ خاص بررسی کنید .
- با استفاده از دستورات
adb shellبرای پیمایش یا وارد کردن دادهها ، با برنامه خود تعامل داشته باشید .
استفاده از عامل هوش مصنوعی برای ساخت و اجرای برنامه شما برای وظایف چند مرحلهای مفید است که در آن عامل باید به طور مکرر تغییرات را ایجاد کند و تأیید کند که آنها مطابق انتظار کار میکنند.

ویژگیهای پیشرفته ساخت و اجرا
روش پیشفرض برای ساخت و اجرای برنامه در اندروید استودیو باید برای آزمایش یک برنامه ساده کافی باشد. با این حال، میتوانید از این ویژگیهای ساخت و اجرا برای موارد پیشرفتهتر استفاده کنید:
برای استقرار برنامه خود در حالت اشکالزدایی، روی اشکالزدایی کلیک کنید
اجرای برنامه در حالت اشکالزدایی به شما امکان میدهد نقاط توقف را در کد خود تنظیم کنید، متغیرها را بررسی و عبارات را در زمان اجرا ارزیابی کنید و ابزارهای اشکالزدایی را اجرا کنید. برای کسب اطلاعات بیشتر، به بخش اشکالزدایی برنامه مراجعه کنید.اگر برنامه بزرگتر و پیچیدهتری دارید، به جای کلیک روی Run ، از Apply Changes استفاده کنید.
این باعث صرفهجویی در زمان میشود، زیرا از راهاندازی مجدد برنامه خود هر بار که میخواهید یک تغییر را اعمال کنید، جلوگیری میکنید. برای اطلاعات بیشتر در مورد اعمال تغییرات، به بخش « اعمال تدریجی با اعمال تغییرات» مراجعه کنید.اگر از Jetpack Compose استفاده میکنید، Live Edit یک ویژگی آزمایشی است که به شما امکان میدهد composableها را به صورت بلادرنگ و بدون کلیک مجدد روی Run بهروزرسانی کنید.
این به شما امکان میدهد تا با حداقل وقفه، روی نوشتن کد رابط کاربری تمرکز کنید. برای اطلاعات بیشتر، به بخش ویرایش زنده (آزمایشی) مراجعه کنید.اگر برنامهای با چندین نوع یا نسخه ساخت دارید، میتوانید با استفاده از پنجره ابزار Build Variants انتخاب کنید که کدام نوع ساخت را میخواهید مستقر کنید. برای اطلاعات بیشتر در مورد اجرای یک نوع ساخت خاص، به بخش تغییر نوع ساخت مراجعه کنید.
برای تنظیم دقیق گزینههای نصب، راهاندازی و آزمایش برنامه، میتوانید پیکربندی اجرا/اشکالزدایی را تغییر دهید. برای اطلاعات بیشتر در مورد ایجاد پیکربندیهای اجرا/اشکالزدایی سفارشی، به بخش ایجاد پیکربندیهای اجرا/اشکالزدایی مراجعه کنید.
توصیه میکنیم برای نیازهای توسعه خود از اندروید استودیو استفاده کنید، اما میتوانید برنامه خود را از طریق خط فرمان نیز روی یک دستگاه مجازی یا فیزیکی مستقر کنید. برای اطلاعات بیشتر، به بخش «ساخت برنامه از طریق خط فرمان» مراجعه کنید.
با اعمال تغییرات، به صورت تدریجی مستقر شوید
در اندروید استودیو ۳.۵ و بالاتر، گزینه «اعمال تغییرات» به شما امکان میدهد تغییرات کد و منابع را بدون راهاندازی مجدد برنامه - و در برخی موارد، بدون راهاندازی مجدد فعالیت فعلی - به برنامه در حال اجرا اعمال کنید. این انعطافپذیری به شما کمک میکند تا کنترل کنید که چه مقدار از برنامه شما هنگام استقرار و آزمایش تغییرات کوچک و تدریجی، مجدداً راهاندازی شود و در عین حال وضعیت فعلی دستگاه شما حفظ شود.
«اعمال تغییرات» از قابلیتهایی در پیادهسازی JVMTI اندروید استفاده میکند که در دستگاههای دارای اندروید ۸.۰ (سطح API ۲۶) یا بالاتر پشتیبانی میشوند. برای کسب اطلاعات بیشتر در مورد نحوه عملکرد «اعمال تغییرات»، به بخش «پروژه ماربل اندروید استودیو: اعمال تغییرات» مراجعه کنید.
الزامات
اقدامات «اعمال تغییرات» فقط زمانی در دسترس هستند که شرایط زیر را داشته باشید:
- شما فایل APK برنامه خود را با استفاده از یک نسخه ساخت اشکالزدایی (debug build variant) میسازید.
- شما برنامه خود را روی یک دستگاه هدف یا شبیهساز که اندروید ۸.۰ (سطح API 26) یا بالاتر را اجرا میکند، مستقر میکنید.
از اعمال تغییرات استفاده کنید
وقتی میخواهید تغییرات خود را در یک دستگاه سازگار اعمال کنید، از گزینههای زیر استفاده کنید:
اعمال تغییرات و شروع مجدد فعالیت
: تلاش میکند تا با راهاندازی مجدد activity شما، اما بدون راهاندازی مجدد برنامه، تغییرات منبع و کد شما را اعمال کند. بهطورکلی، میتوانید از این گزینه زمانی استفاده کنید که کد را در بدنه یک متد تغییر دادهاید یا یک منبع موجود را اصلاح کردهاید.
همچنین میتوانید این عمل را با فشار دادن کلیدهای Control + Alt + F10 (در macOS ، Control + Command + Shift + R ) انجام دهید.
اعمال تغییرات کد
: تلاش میکند فقط تغییرات کد شما را بدون راهاندازی مجدد چیزی اعمال کند. بهطورکلی، میتوانید از این گزینه زمانی استفاده کنید که کد را در بدنه یک متد تغییر دادهاید اما هیچ منبعی را تغییر ندادهاید. اگر هم کد و هم منابع را تغییر دادهاید، به جای آن از اعمال تغییرات و راهاندازی مجدد فعالیت استفاده کنید.
همچنین میتوانید این عمل را با فشار دادن کلیدهای Control + F10 (در macOS، کلیدهای Control + Command + R ) انجام دهید.
اجرا کنید
: همه تغییرات را اعمال کرده و برنامه را مجدداً راهاندازی میکند. از این گزینه زمانی استفاده کنید که تغییراتی که ایجاد کردهاید با استفاده از هیچ یک از گزینههای اعمال تغییرات قابل اعمال نیستند. برای کسب اطلاعات بیشتر در مورد انواع تغییراتی که نیاز به راهاندازی مجدد برنامه دارند، به بخش محدودیتهای اعمال تغییرات مراجعه کنید.
فعال کردن اجرای جایگزین برای اعمال تغییرات
وقتی روی «اعمال تغییرات و راهاندازی مجدد فعالیت» یا «اعمال تغییرات کد» کلیک میکنید، اندروید استودیو یک APK جدید میسازد و تعیین میکند که آیا تغییرات قابل اعمال هستند یا خیر. اگر تغییرات قابل اعمال نباشند و باعث شوند که «اعمال تغییرات» با شکست مواجه شود، اندروید استودیو از شما میخواهد که اجرا کنید
در عوض، دوباره برنامه شما.
اگر نمیخواهید هر بار که این اتفاق میافتد، از شما خواسته شود، میتوانید اندروید استودیو را طوری پیکربندی کنید که وقتی تغییرات اعمال نمیشوند، برنامه شما را به طور خودکار دوباره اجرا کند. برای فعال کردن این رفتار، این مراحل را دنبال کنید:
پنجره تنظیمات یا تنظیمات برگزیده را باز کنید:
- در ویندوز یا لینوکس، از منو، File > Settings را انتخاب کنید.
- در macOS، از منو، Android Studio > Preferences را انتخاب کنید.
به مسیر ساخت، اجرا، استقرار > استقرار بروید.
برای فعال کردن اجرای خودکار پشتیبان برای یک یا هر دو اقدام «اعمال تغییرات»، کادرهای انتخاب را علامت بزنید.
روی تأیید کلیک کنید.
تغییرات وابسته به پلتفرم
برخی از ویژگیهای «اعمال تغییرات» به نسخههای خاصی از پلتفرم اندروید بستگی دارد. برای اعمال این نوع تغییرات، برنامه شما باید روی دستگاهی که آن نسخه از اندروید (یا بالاتر) را اجرا میکند، مستقر شود. به عنوان مثال، اضافه کردن یک متد به اندروید ۱۱ یا بالاتر نیاز دارد.
محدودیتهای اعمال تغییرات
اعمال تغییرات برای سرعت بخشیدن به فرآیند استقرار برنامه طراحی شده است. با این حال، محدودیتهایی در مورد زمان استفاده از آن وجود دارد.
تغییرات کد که نیاز به راهاندازی مجدد برنامه دارند
برخی از تغییرات کد و منابع تا زمانی که برنامه مجدداً راهاندازی نشود، قابل اعمال نیستند، از جمله موارد زیر:
- اضافه کردن یا حذف کردن یک فیلد
- حذف یک روش
- تغییر امضاهای متد
- تغییر اصلاحکنندههای متدها یا کلاسها
- تغییر وراثت کلاس
- تغییر مقادیر در enumها
- اضافه کردن یا حذف کردن یک منبع
- تغییر مانیفست برنامه
- تغییر کتابخانههای بومی (فایلهای SO)
کتابخانهها و افزونهها
برخی از کتابخانهها و افزونهها بهطور خودکار تغییراتی در فایلهای مانیفست برنامه شما یا منابعی که در مانیفست به آنها ارجاع داده شده است، ایجاد میکنند. این بهروزرسانیهای خودکار میتوانند به روشهای زیر در اعمال تغییرات اختلال ایجاد کنند:
- اگر یک کتابخانه یا افزونه تغییراتی در مانیفست برنامه شما ایجاد کند، نمیتوانید از «اعمال تغییرات» استفاده کنید. برای مشاهده تغییرات، باید برنامه خود را مجدداً راهاندازی کنید.
- اگر یک کتابخانه یا افزونه تغییراتی در فایلهای منبع برنامه شما ایجاد کند، نمیتوانید از «اعمال تغییرات کد» استفاده کنید.
شما باید از اعمال تغییرات و راهاندازی مجدد فعالیت استفاده کنید.
(یا برنامه خود را مجدداً راه اندازی کنید) تا تغییرات خود را مشاهده کنید.
برای جلوگیری از این محدودیتها، تمام بهروزرسانیهای خودکار را برای انواع اشکالزدایی ساخت خود غیرفعال کنید.
برای مثال، Firebase Crashlytics منابع برنامه را با یک شناسه ساخت منحصر به فرد در طول هر ساخت بهروزرسانی میکند، که مانع از استفاده شما از Apply Code Changes میشود.
و برای مشاهده تغییرات، لازم است که activity برنامه خود را مجدداً راهاندازی کنید. برای استفاده از Apply Code Changes در کنار Crashlytics با بیلدهای اشکالزدایی خود، این رفتار را غیرفعال کنید.
کدی که مستقیماً به محتوای یک APK نصب شده اشاره میکند
اگر کد شما مستقیماً به محتوای APK برنامه شما که روی دستگاه نصب شده است اشاره کند، آن کد میتواند پس از کلیک روی «اعمال تغییرات کد» باعث خرابی یا عملکرد نادرست شود.
این رفتار به این دلیل رخ میدهد که وقتی روی «اعمال تغییرات کد» کلیک میکنید، APK اصلی روی دستگاه در حین نصب جایگزین میشود. در این موارد، میتوانید روی «اعمال تغییرات» کلیک کرده و فعالیت را مجدداً راهاندازی کنید.
یا اجرا کنید
در عوض.
اگر هنگام استفاده از «اعمال تغییرات» با مشکل دیگری مواجه شدید، یک اشکال (bug) ثبت کنید .
ویرایش زنده
ویرایش زنده (Live Edit) یک ویژگی آزمایشی در اندروید استودیو است که به شما امکان میدهد کامپوننتها (composables) را در شبیهسازها و دستگاههای فیزیکی به صورت بلادرنگ بهروزرسانی کنید. این قابلیت، جابهجاییهای زمینهای بین نوشتن و ساخت برنامه را به حداقل میرساند و به شما امکان میدهد بدون وقفه، مدت بیشتری روی نوشتن کد تمرکز کنید.
درباره ویرایش زنده بیشتر بدانید
نوع ساخت را تغییر دهید
به طور پیشفرض، اندروید استودیو نسخه اشکالزدایی برنامه شما را میسازد که فقط برای استفاده در طول توسعه در نظر گرفته شده است، وقتی روی «اجرا» کلیک میکنید
.
برای تغییر نوع ساختی که اندروید استودیو استفاده میکند، یکی از موارد زیر را انجام دهید:
- از منو، گزینه Build > Select Build Variant را انتخاب کنید.
- از منو، گزینه View > Tool Windows > Build Variants را انتخاب کنید.
- روی برگه Build Variants در نوار ابزار پنجره کلیک کنید.
برای پروژههایی که کد native/C++ ندارند، پنل Build Variants دو ستون دارد: Module و Active Build Variant . مقدار Active Build Variant برای ماژول، نوع ساختی را که IDE روی دستگاه متصل شما پیادهسازی میکند و در ویرایشگر قابل مشاهده است، تعیین میکند.

شکل ۹. پنل Build Variants دو ستون برای پروژههایی دارد که کد native/C++ ندارند.
برای جابجایی بین انواع، روی سلول Active Build Variant برای یک ماژول کلیک کنید و نوع مورد نظر را از لیست انتخاب کنید.
برای پروژههایی با کد native/C++، پنل Build Variants سه ستون دارد:
- ماژول
- نوع ساخت فعال
- ABI فعال
مقدار Active Build Variant برای ماژول، نوع ساختی را که IDE روی دستگاه شما مستقر میکند و در ویرایشگر قابل مشاهده است، تعیین میکند. برای ماژولهای بومی، مقدار Active ABI، ABI مورد استفاده ویرایشگر را تعیین میکند، اما بر آنچه مستقر میشود تأثیری ندارد.

شکل ۱۰. پنل Build Variants ستون Active ABI را برای پروژههایی با کد native/C++ اضافه میکند.
برای تغییر نوع ساخت یا ABI، روی سلول مربوط به ستون Active Build Variant یا Active ABI کلیک کنید و نوع یا ABI مورد نظر را از لیست انتخاب کنید. پس از تغییر انتخاب، IDE پروژه شما را به طور خودکار همگامسازی میکند. تغییر هر یک از ستونهای یک برنامه یا ماژول کتابخانه، تغییر را در تمام ردیفهای وابسته اعمال میکند.
به طور پیشفرض، پروژههای جدید با دو نوع ساخت راهاندازی میشوند: یک نوع اشکالزدایی و یک نوع انتشار. برای آمادهسازی برنامه خود برای انتشار عمومی، باید نوع انتشار را بسازید. برای تعریف انواع دیگر برنامه خود با ویژگیها یا الزامات دستگاه متفاوت، میتوانید انواع ساخت اضافی را تعریف کنید .
تداخلها در پنجرهی گزینههای ساخت اندروید استودیو
در پنجرهی « گزینههای ساخت اندروید استودیو»، ممکن است پیامهای خطایی را مشاهده کنید که نشاندهندهی تداخل بین گونههای ساخت هستند، مانند موارد زیر:

این خطا نشاندهندهی مشکل در ساخت با Gradle نیست. این نشان میدهد که محیط توسعهی اندروید استودیو نمیتواند نمادهای بین انواع ماژولهای انتخابشده را تشخیص دهد.
برای مثال، اگر ماژول M1 دارید که به نوع v1 ماژول M2 وابسته است، اما نوع v2 در IDE برای M2 انتخاب شده است، نمادهای شما در IDE حل نشدهاند. فرض کنید M1 به کلاسی وابسته است که فقط در v1 موجود است؛ وقتی v2 انتخاب میشود، آن کلاس توسط IDE شناخته نمیشود. بنابراین، IDE نمیتواند نام کلاس را حل کند و خطاهایی در کد ماژول M1 نشان میدهد.
این پیامهای خطا به این دلیل ظاهر میشوند که IDE نمیتواند کد چندین نوع را به طور همزمان بارگذاری کند. با این حال، از نظر ساخت برنامه شما، نوع انتخاب شده در این کادر محاورهای هیچ تاثیری ندارد، زیرا Gradle برنامه شما را با کد منبع مشخص شده در دستور العملهای ساخت Gradle شما میسازد، نه بر اساس آنچه در حال حاضر در IDE بارگذاری شده است.
تغییر پیکربندی اجرا/اشکالزدایی
وقتی برای اولین بار برنامه خود را اجرا میکنید، اندروید استودیو از یک پیکربندی پیشفرض برای اجرا استفاده میکند. پیکربندی اجرا مشخص میکند که آیا برنامه شما از یک APK یا یک Android App Bundle مستقر شود، و همچنین ماژولی که باید اجرا شود، بستهای که باید مستقر شود، فعالیتی که باید شروع شود، دستگاه هدف، تنظیمات شبیهساز، گزینههای Logcat و موارد دیگر را مشخص میکند.
پیکربندی پیشفرض اجرا/اشکالزدایی، یک APK میسازد، فعالیت پیشفرض پروژه را راهاندازی میکند و از کادر محاورهای «انتخاب هدف استقرار» برای انتخاب دستگاه هدف استفاده میکند. اگر تنظیمات پیشفرض با پروژه یا ماژول شما مطابقت ندارد، میتوانید پیکربندی اجرا/اشکالزدایی را سفارشی کنید یا پیکربندی جدیدی را در سطوح پروژه، پیشفرض و ماژول ایجاد کنید.
برای ویرایش پیکربندی اجرا/اشکالزدایی، اجرا > ویرایش پیکربندیها را انتخاب کنید. برای اطلاعات بیشتر، به ایجاد و ویرایش پیکربندیهای اجرا/اشکالزدایی مراجعه کنید.