پروژههای Android حاوی فایلهای مرتبط با ساخت و ساختارهای دایرکتوری زیادی برای سازماندهی منبع و منابع برنامه شما هستند. قبلاز پرداختن به جزئیات پیکربندی، نگاهی به ساختار کلی و اصول اولیه آنچه به هر بخش تعلق دارد خواهیم انداخت.
این جدول فایلهای معمول در پروژه Android را فهرست میکند. شرح هر فایل یا دایرکتوری شامل یادداشتهایی درباره نوع محتوایی است که به آن تعلق دارد. روالهای مطلوب درطول زمان تکامل مییابند و این شرحها ممکن است با پروژهای که به ارث بردهاید یا از اینترنت بارگیری کردهاید مطابقت نداشته باشند.
هنگام نوشتن فایلهای ساخت، از رویکرد اعلانی استفاده کنید؛ منطق ساخت و تعاریف تکلیف فقط باید در افزایهها ظاهر شوند. با محدود کردن منطق ساخت به افزونهها، فایلهای ساخت به اعلامیههای داده تبدیل میشوند که درک و ویرایش آنها مستقیمتر است. نسخههای آینده ممکن است شامل مشخصات جایگزینی مانند Declarative Gradle باشند که از منطق ساخت در فایلها جلوگیری میکند.
پوشه/فایل |
استفاده کردن |
|---|---|
.gradle/ |
فهرست راهنمای حافظه نهان پروژه Gradle توسط Gradle مدیریت میشود و حاوی توزیع Gradle بارگیریشده، حافظه پنهان پروژه، و فایلهای پیکربندی است. فایلهای این فهرست راهنما را تغییر ندهید! |
.idea/ |
فراداده پروژه «استودیو Android» فایلهای این فهرست راهنما را تغییر ندهید! |
build.gradle(.kts) |
باید فقط شامل اعلانهای افزونه برای راهاندازی مسیر کلاس افزونه مشترک در زیرپروژهها باشد. کدهای دیگر باید در تنظیمات یا فایلهای ساخت سطح پروژه تودرتو قرار داشته باشند. |
gradle.properties |
حاوی ویژگیهای Gradle است که جنبههای محیط ساخت Gradle مانند اندازه پشته، ذخیرهسازی موقت، و اجرای موازی را کنترل میکند. برخیاز ویژگیهای موقت Android در اینجا تعریف شدهاند تا تغییرات در AGP DSL با اضافه شدن و سپس حذف شدن آنها کاهش یابد. |
gradlew (linux, Mac) gradlew.bat (Windows) |
Gradle wrapper file با بارگیری توزیع Gradle و سپس بازارسال فرمانها به آن، ساخت شما را راهاندازی میکند. این کار به شما امکان میدهد ساختها را بدون نیاز به پیشنصب Gradle اجرا کنید. |
local.properties |
پیکربندی ماشین محلی حاوی ویژگیهای مربوط به ماشین محلی است، مثل مکان کیت توسعه نرمافزار Android. این فایل را از کنترل منبع مستثنی کنید! |
settings.gradle(.kts) |
حاوی اطلاعات ساخت سراسری برای مقداردهی اولیه Gradle و پیکربندی پروژه است، مانند
|
gradle/ |
|
↳ libs.versions.toml |
متغیرهای مربوط به وابستگیها و افزایههای استفادهشده در ساخت را تعریف میکند. در اینجا مشخص میکنید که میخواهید از کدام نسخهها استفاده کنید و از سازگاری در سراسر زیرپروژهها در پروژهتان اطمینان حاصل میکنید. |
↳ wrapper/ |
|
↳ gradle‑wrapper.jar |
راهاندازی Gradle قابلاجرا توزیع Gradle مشخصشده را بارگیری میکند (اگر وجود نداشته باشد) و آن را اجرا میکند و هرگونه متغیر مستقل را منتقل میکند |
↳ gradle‑wrapper.properties |
پیکربندی برای بستهبندیکننده Gradle مشخص میکند که توزیع Gradle از کجا بارگیری شود (ازجمله اینکه از کدام نسخه استفاده شود). |
برنامه/ |
زیرپروژهها (که در Android Studio با نام «مدول» شناخته میشوند) میتوانند برنامهها یا کتابخانهها را بسازند و ممکن است به زیرپروژههای دیگر یا وابستگیهای خارجی وابسته باشند.
|
↳ build.gradle(.kts) |
نحوه ساختن این زیرپروژه را اعلام میکند. هر زیرپروژه به فایل ساخت جداگانهای نیاز دارد و باید حاوی موارد زیر باشد
نباید منطق ساخت (مثل تعاریف یا شرایط تابع Kotlin) یا اعلانهای تکلیف را در فایلهای ساخت خود بگنجانید. منطق ساخت و تکالیف باید فقط در افزایهها گنجانده شود. |
↳ src/ |
فایلهای منبع زیرپروژه فایلهای منبع (کد برنامه و منابع) را در مجموعههای منبع گروهبندی میکند. مجموعه منبع |
↳ main/ |
مجموعه منبع اصلی کد منبع و منابعی که در همه تنوعهای ساخت مشترک هستند. این منبع بهعنوان پایه برای همه ساختها عمل میکند و مجموعههای منبع دیگر و خاصتر به این منبع اضافه میشوند یا آن را لغو میکنند. |
↳ java/ ↳ kotlin/ |
کد منبع Kotlin و Java دایرکتوری |
↳ res/ |
حاوی منابع برنامه، مانند فایلهای XML و تصاویر است. همه برنامهها از برخی منابع پایه، مانند نمادهای راهانداز، استفاده میکنند، اما بسیاری از این منابع، مانند چیدمانها و منوها، فقط در برنامههای مبتنی بر نما استفاده میشوند. برنامههای Compose از منابع رشته تعریفشده در این دایرکتوری استفاده میکنند. |
↳ AndroidManifest.xml |
توسط مدیر بسته Android خوانده میشود تا به سیستم بگوید
|
↳ androidTest/ |
مجموعه منبع آزمایش دستگاه حاوی منبعی برای آزمایشهایی است که در دستگاه یا شبیهساز مجهز به Android اجرا خواهد شد. این آزمایشها به محیط واقعی Android دسترسی دارند، اما کندتر از آزمایشهای میزبان اجرا میشوند. |
↳ test/ |
آزمایش میزبان مجموعه منبع حاوی منبعی برای آزمایشهایی است که بهصورت محلی در JVM اجرا میشوند، برخلاف آزمایشهایی که در دستگاه اجرا میشوند. اجرای این آزمایشها بسیار سریعتر از آزمایشهای دستگاه است. بااینحال، هرگونه فراخوانی سیستم (ازجمله چرخههای حیاتی که برنامه شما را اجرا میکنند) باید شبیهسازی، جعل، یا بهنحوی دیگر شبیهسازی شوند. همه فایلهای منبع در مجموعه منبع |
↳ proguard-rules.pro |
قوانینی را برای کنترل کوچک کردن، بهینهسازی، و مبهمسازی برنامه تعریف میکند. R8 کدها و منابع غیرضروری را حذف میکند، عملکرد زمان اجرا را بهینه میکند، و با تغییر نام شناسهها کد شما را بیشتر کوچک میکند. |