نمای کلی پروژه ها

یک پروژه در اندروید استودیو شامل هر چیزی است که فضای کاری شما را برای یک برنامه تعریف می‌کند، از کد منبع و دارایی‌ها گرفته تا کد تست و پیکربندی‌های ساخت.

وقتی یک پروژه جدید را شروع می‌کنید، اندروید استودیو ساختار لازم را برای تمام فایل‌های شما ایجاد می‌کند و آنها را در پنجره پروژه در اندروید استودیو قابل مشاهده می‌کند. برای باز کردن پنجره، View > Tool Windows > Project را انتخاب کنید.

این صفحه مروری بر اجزای کلیدی درون پروژه شما ارائه می‌دهد.

ماژول‌ها

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

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

برای افزودن یک ماژول جدید به پروژه خود، روی File > New > New Module کلیک کنید.

اندروید استودیو چند نوع ماژول مجزا ارائه می‌دهد:

ماژول برنامه اندروید

یک محفظه برای کد منبع برنامه، فایل‌های منبع و تنظیمات سطح برنامه، مانند فایل ساخت سطح ماژول و فایل Manifest اندروید، فراهم می‌کند. وقتی یک پروژه جدید ایجاد می‌کنید، ماژول پیش‌فرض برنامه "app" نام دارد.

اندروید استودیو انواع ماژول‌های برنامه زیر را ارائه می‌دهد:

  • تلفن و تبلت
  • خودرو
  • سیستم عامل Wear
  • تلویزیون

هر ماژول فایل‌های ضروری و برخی قالب‌های کد را ارائه می‌دهد که برای برنامه یا نوع دستگاه مربوطه مناسب هستند.

برای اطلاعات بیشتر در مورد افزودن ماژول، بخش افزودن ماژول برای دستگاه جدید را مطالعه کنید.

ماژول ویژگی
نشان‌دهنده یک ویژگی ماژولار از برنامه شما است که می‌تواند از Play Feature Delivery بهره‌مند شود. به عنوان مثال، با ماژول‌های ویژگی، می‌توانید ویژگی‌های خاصی از برنامه خود را به صورت درخواستی یا به عنوان تجربیات فوری از طریق Google Play Instant در اختیار کاربران خود قرار دهید.

اندروید استودیو انواع ماژول‌های ویژگی زیر را ارائه می‌دهد:

  • ماژول ویژگی پویا
  • ماژول کتابخانه ویژگی پویای فوری

برای کسب اطلاعات بیشتر، درباره «ارائه ویژگی پخش» مطالعه کنید.

ماژول کتابخانه

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

در پنجره‌ی «ایجاد ماژول جدید» ، اندروید استودیو انواع ماژول‌های کتابخانه‌ای زیر را ارائه می‌دهد:

  • کتابخانه اندروید: شامل تمام انواع فایل‌های پشتیبانی شده در یک پروژه اندروید به جز کد بومی C++، از جمله کد منبع جاوا و کاتلین، منابع و فایل‌های مانیفست است. نتیجه ساخت، یک فایل بایگانی اندروید (AAR) است که می‌توانید به عنوان یک وابستگی برای ماژول‌های برنامه اندروید خود اضافه کنید.
  • کتابخانه بومی اندروید: شامل تمام انواع فایل‌های پشتیبانی شده در یک پروژه اندروید، مشابه یک کتابخانه اندروید است. با این حال، کتابخانه‌های بومی اندروید می‌توانند شامل کد منبع بومی C++ نیز باشند. نتیجه ساخت، یک فایل بایگانی اندروید (AAR) است که می‌توانید به عنوان یک وابستگی برای ماژول‌های برنامه اندروید خود اضافه کنید.
  • کتابخانه جاوا یا کاتلین: فقط شامل فایل‌های منبع کاتلین یا جاوا است. نتیجه ساخت، یک فایل بایگانی جاوا (JAR) است که می‌توانید آن را به عنوان یک وابستگی برای ماژول‌های برنامه اندروید یا سایر پروژه‌های کاتلین یا جاوا خود اضافه کنید.
  • Benchmark > Microbenchmark: شامل فایل‌هایی است که برای اندازه‌گیری منظم عملکرد کد و خروجی نتایج بنچمارک مورد نیاز هستند. ماژول‌های Microbenchmark به ویژه برای اندازه‌گیری عملکرد قطعات کوچک‌تر کد که بارها و بارها استفاده می‌شوند، مفید هستند. برای اطلاعات بیشتر، به About Microbenchmark مراجعه کنید.

وقتی یک ماژول کتابخانه ایجاد می‌کنید و می‌خواهید آن را به عنوان یک وابستگی به ماژول برنامه اندروید خود اضافه کنید، باید آن را به صورت زیر تعریف کنید:

گرووی

    dependencies {
        implementation project(':my-library-module')
    }
    

کاتلین

    dependencies {
        implementation(project(":my-library-module"))
    }
    
ماژول تست

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

اندروید استودیو انواع ماژول‌های تست زیر را ارائه می‌دهد:

  • تولیدکننده پروفایل پایه: پروفایل‌های پایه، تعاملات کاربر، مانند ناوبری و پیمایش را در اولین اجرا روان‌تر می‌کنند. برای بهبود عملکرد برنامه و تجربه کاربری، پروفایل‌های پایه را برای سفرهای حیاتی کاربر ایجاد کنید.
  • Benchmark > Macrobenchmark: حاوی فایل‌هایی است که برای اندازه‌گیری منظم عملکرد کد و نتایج بنچمارک خروجی مورد نیاز هستند. ماژول‌های Macrobenchmark به ویژه برای اندازه‌گیری عملکرد موارد استفاده بزرگتر برنامه شما، مانند پیمایش در یک لیست یا سایر دستکاری‌های رابط کاربری، مفید هستند. برای اطلاعات بیشتر، به بخش «نوشتن یک Macrobenchmark» مراجعه کنید.

فایل‌های پروژه

به طور پیش‌فرض، اندروید استودیو فایل‌های پروژه شما را در نمای اندروید نمایش می‌دهد. این نما سلسله مراتب واقعی فایل‌ها روی دیسک را منعکس نمی‌کند. در عوض، بر اساس ماژول‌ها و انواع فایل‌ها سازماندهی شده است تا پیمایش بین فایل‌های منبع کلیدی پروژه شما ساده شود و فایل‌ها یا دایرکتوری‌های خاصی که معمولاً استفاده نمی‌شوند، پنهان شوند.

برخی از تفاوت‌های ساختاری بین نمای اندروید و ساختار روی دیسک این است که نمای اندروید :

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

در هر ماژول برنامه اندروید، فایل‌ها در گروه‌های زیر نمایش داده می‌شوند:

آشکار می کند
حاوی فایل AndroidManifest.xml است.
جاوا
شامل فایل‌های کد منبع Kotlin و Java است که بر اساس نام بسته‌ها، از جمله کد تست JUnit، از هم جدا شده‌اند.
رس
شامل تمام منابع غیر کد، مانند رشته‌های رابط کاربری و تصاویر بیت‌مپ، تقسیم‌شده به زیردایرکتوری‌های مربوطه است. برای اطلاعات بیشتر در مورد انواع منابع ممکن، به نمای کلی منابع برنامه مراجعه کنید.

نمای پروژه

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

وقتی نمای پروژه را انتخاب می‌کنید، می‌توانید فایل‌ها و دایرکتوری‌های بسیار بیشتری از جمله موارد زیر را مشاهده کنید:

module-name /
build/
شامل خروجی‌های ساخت است.
libs/
شامل کتابخانه‌های خصوصی است.
src/
شامل تمام کدها و فایل‌های منبع برای ماژول در زیرشاخه‌های زیر است:
androidTest/
شامل کدی برای تست‌های ابزار دقیق است که روی دستگاه اندروید اجرا می‌شوند. برای اطلاعات بیشتر، به «تست در اندروید استودیو» مراجعه کنید.
cpp/
شامل کد بومی C یا C++ با استفاده از رابط بومی جاوا (JNI) است. برای اطلاعات بیشتر، به مستندات Android NDK مراجعه کنید.
main/
شامل فایل‌های مجموعه منبع «اصلی» است: کد اندروید و منابعی که توسط همه انواع ساخت به اشتراک گذاشته شده است (فایل‌های مربوط به سایر انواع ساخت در دایرکتوری‌های خواهر و برادر قرار دارند، مانند src/debug/ برای نوع ساخت اشکال‌زدایی):
AndroidManifest.xml
ماهیت برنامه و هر یک از اجزای آن را شرح می‌دهد. برای اطلاعات بیشتر، به نمای کلی مانیفست برنامه مراجعه کنید.
java/
شامل منابع کد کاتلین یا جاوا، یا هر دو، اگر برنامه شما هم کد منبع کاتلین و هم کد منبع جاوا را دارد.
kotlin/
فقط شامل منابع کد کاتلین است.
res/
شامل منابع برنامه، مانند فایل‌های قابل ترسیم و فایل‌های رشته رابط کاربری است. برای اطلاعات بیشتر، به نمای کلی منابع برنامه مراجعه کنید.
assets/
شامل فایل‌هایی است که باید به صورت یک فایل APK کامپایل شوند. برای مثال، این مکان خوبی برای بافت‌ها و داده‌های بازی است. می‌توانید این دایرکتوری را مانند یک سیستم فایل معمولی، با استفاده از URIها پیمایش کنید و فایل‌ها را به صورت جریانی از بایت‌ها با استفاده از AssetManager بخوانید.
test/
شامل کدی برای تست‌های محلی است که روی JVM میزبان شما اجرا می‌شوند.
build.gradle یا build.gradle.kts (ماژول)
این تنظیمات ساخت مختص ماژول را تعریف می‌کند. اگر از Groovy به عنوان زبان اسکریپت ساخت خود استفاده می‌کنید، build.gradle نام فایل صحیح است و اگر از اسکریپت Kotlin استفاده می‌کنید، build.gradle.kts .
build.gradle یا build.gradle.kts (پروژه)
این فایل پیکربندی ساخت شما را که برای همه ماژول‌ها اعمال می‌شود، تعریف می‌کند. اگر از Groovy به عنوان زبان اسکریپت ساخت خود استفاده می‌کنید، build.gradle نام فایل صحیح است و اگر از اسکریپت Kotlin استفاده می‌کنید build.gradle.kts . این فایل جزئی جدایی‌ناپذیر از پروژه است، بنابراین آن را در کنترل ویرایش با سایر کدهای منبع نگه دارید.

برای اطلاعات مربوط به سایر فایل‌های ساخت، به پیکربندی ساخت خود مراجعه کنید.

تنظیمات ساختار پروژه

برای تغییر تنظیمات مختلف پروژه اندروید استودیو خود، با کلیک روی File > Project Structure، پنجره Project Structure را باز کنید. این پنجره شامل بخش‌های زیر است:

  • پروژه: نسخه Gradle و افزونه Android Gradle و نام محل مخزن را تنظیم می‌کند.
  • مکان SDK: مکان JDK، Android SDK و Android NDK مورد استفاده در پروژه شما را تعیین می‌کند.
  • متغیرها: به شما امکان می‌دهد متغیرهایی را که در اسکریپت‌های ساخت شما استفاده می‌شوند، ویرایش کنید.
  • ماژول‌ها: به شما امکان می‌دهد پیکربندی‌های ساخت مختص ماژول، از جمله SDK هدف و حداقل، امضای برنامه و وابستگی‌های کتابخانه را ویرایش کنید. صفحه تنظیمات هر ماژول به برگه‌های زیر تقسیم می‌شود:
    • ویژگی‌ها: نسخه‌های SDK و ابزارهای ساخت مورد استفاده برای کامپایل ماژول را مشخص می‌کند.
    • امضا: گواهی مورد استفاده برای امضای برنامه شما را مشخص می‌کند.
  • وابستگی‌ها: وابستگی‌های کتابخانه، فایل و ماژول را برای این ماژول فهرست می‌کند. می‌توانید وابستگی‌ها را از این صفحه اضافه، اصلاح و حذف کنید. برای اطلاعات بیشتر در مورد وابستگی‌های ماژول، به پیکربندی انواع ساخت مراجعه کنید.

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

    • Flavors: به شما امکان می‌دهد چندین flavor ساخت ایجاد کنید، که در آن هر flavor مجموعه‌ای از تنظیمات پیکربندی، مانند حداقل و نسخه SDK هدف ماژول و کد نسخه و نام نسخه را مشخص می‌کند.

      برای مثال، ممکن است یک flavor تعریف کنید که حداقل SDK آن ۲۱ و SDK هدف آن ۲۹ باشد، و flavor دیگری که حداقل SDK آن ۲۴ و SDK هدف آن ۳۳ باشد.

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