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

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

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

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

ماژول ها

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

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

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

Android Studio چند نوع متمایز از ماژول ها را ارائه می دهد:

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

Android Studio انواع زیر ماژول های برنامه را ارائه می دهد:

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

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

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

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

Android Studio انواع ماژول های ویژگی زیر را ارائه می دهد:

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

برای کسب اطلاعات بیشتر، درباره تحویل ویژگی Play بخوانید.

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

در پنجره Create New Module ، Android Studio انواع زیر از ماژول های کتابخانه را ارائه می دهد:

  • کتابخانه Android: شامل تمام انواع فایل های پشتیبانی شده در پروژه اندروید به جز کدهای C++ بومی، از جمله کد منبع جاوا و Kotlin، منابع و فایل های مانیفست است. نتیجه ساخت یک فایل بایگانی اندروید (AAR) است که می توانید آن را به عنوان وابستگی برای ماژول های برنامه اندروید خود اضافه کنید.
  • کتابخانه بومی Android: شامل همه انواع فایل های پشتیبانی شده در یک پروژه اندروید، مشابه کتابخانه اندروید است. با این حال، کتابخانه‌های بومی اندروید نیز می‌توانند حاوی کد منبع C++ باشند. نتیجه ساخت یک فایل بایگانی اندروید (AAR) است که می توانید آن را به عنوان وابستگی برای ماژول های برنامه اندروید خود اضافه کنید.
  • Java or Kotlin Library: فقط شامل فایل های منبع Kotlin یا جاوا می باشد. نتیجه ساخت یک فایل بایگانی جاوا (JAR) است که می‌توانید آن را به عنوان وابستگی برای ماژول‌های برنامه Android یا سایر پروژه‌های Kotlin یا Java اضافه کنید.

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

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

شیار

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

کاتلین

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

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

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

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

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

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

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

نمای پروژه

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

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

module-name /
build/
شامل خروجی های ساخت.
libs/
شامل کتابخانه های خصوصی
src/
شامل تمام کدها و فایل های منبع برای ماژول در زیر شاخه های زیر است:
androidTest/
حاوی کدهایی برای تست های ابزار دقیقی است که روی دستگاه اندرویدی اجرا می شوند. برای اطلاعات بیشتر، تست در Android Studio را ببینید.
cpp/
حاوی کد بومی C یا C++ با استفاده از رابط بومی جاوا (JNI). برای اطلاعات بیشتر، به مستندات Android NDK مراجعه کنید.
main/
حاوی فایل‌های مجموعه منبع "اصلی" است: کد Android و منابع به اشتراک گذاشته شده توسط همه انواع ساخت (فایل‌های سایر انواع ساخت در دایرکتوری‌های خواهر و برادر مانند src/debug/ برای نوع ساخت اشکال‌زدایی قرار دارند):
AndroidManifest.xml
ماهیت برنامه و هر یک از اجزای آن را شرح می دهد. برای اطلاعات بیشتر، نمای کلی مانیفست برنامه را ببینید.
java/
اگر برنامه شما دارای کد منبع Kotlin و Java باشد، حاوی منابع کد Kotlin یا جاوا یا هر دو است.
kotlin/
فقط شامل منابع کد 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 است. این فایل یکپارچه با پروژه است، بنابراین آن را در کنترل بازبینی با سایر کدهای منبع نگهداری کنید.

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

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

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

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

  • Build Variants: به شما امکان می دهد طعم های مختلف و انواع ساخت را برای پروژه خود پیکربندی کنید.

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

      برای مثال، ممکن است طعمی را تعریف کنید که حداقل SDK 21 و هدف SDK آن 29 باشد و طعم دیگری که حداقل SDK آن 24 و SDK هدف 33 باشد.

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