منابع برنامه، مانند آیکونهای برنامه، رشتههای محلیشده و بیتمپها، در دایرکتوریهای مخصوص به هر نوع، درون دایرکتوری res/ هر ماژول، سازماندهی شدهاند. همچنین میتوانید نسخههای جایگزینی از هر فایل که برای پیکربندیهای مختلف دستگاه بهینه شدهاند، مانند نسخهای با وضوح بالا از بیتمپ برای صفحات نمایش با تراکم بالا، اضافه کنید.
اندروید استودیو به شما کمک میکند تا منابع جدید و منابع جایگزین را به روشهای مختلفی، بسته به نوع منبعی که میخواهید اضافه کنید، اضافه کنید. این صفحه نحوه اضافه کردن فایلهای منبع اولیه، نحوه تغییر مکان منابع و نحوه ادغام منابع را شرح میدهد.
در Jetpack Compose، شما رابط کاربری خود را به جای طرحبندیهای XML، در Kotlin تعریف میکنید. با این حال، شما همچنان از دایرکتوری res/ برای ذخیره داراییهای استاتیک سطح برنامه مانند آیکونها، فونتها و ترجمهها استفاده میکنید. برای یادگیری نحوه دسترسی به این منابع در توابع composable خود، به Resources in Compose مراجعه کنید.
برای جزئیات بیشتر در مورد نحوه ایجاد انواع منابع خاص، به صفحات زیر مراجعه کنید:
- برای افزودن فایلهای رشتهای، به «محلیسازی رابط کاربری با ویرایشگر ترجمهها» مراجعه کنید.
- برای افزودن بیتمپها، به ایجاد آیکونهای برنامه مراجعه کنید.
- برای افزودن فایلهای SVG، به بخش افزودن گرافیکهای برداری چند چگالی مراجعه کنید.
برای اطلاعات بیشتر در مورد نحوه ارجاع به منابع از کد برنامه خود، به نمای کلی منابع برنامه مراجعه کنید.
یک فایل منبع XML اضافه کنید
اگرچه لینکهای صفحه قبل، گردشهای کاری سفارشیشده برای هر نوع منبع را شرح میدهند، میتوانید با دنبال کردن مراحل زیر، هر فایل منبع XML را اضافه کنید:
- روی ماژول برنامه هدف در پنجره پروژه ، چه در نمای اندروید و چه در نمای پروژه ، کلیک کنید.
- فایل > جدید > فایل منبع اندروید را انتخاب کنید.

شکل ۱. پنجرهی فایل منبع جدید .
- جزئیات را در کادر محاورهای پر کنید:
- نام فایل : نام فایل XML را وارد کنید (این نام نیازی به پسوند
.xmlندارد). - نوع منبع : نوع منبعی را که میخواهید ایجاد کنید انتخاب کنید.
- عنصر ریشه : در صورت لزوم، عنصر XML ریشه را برای فایل انتخاب کنید. برخی از انواع منابع فقط از یک نوع عنصر ریشه پشتیبانی میکنند. بسته به نوع منبع انتخاب شده، ممکن است این عنصر قابل ویرایش نباشد.
- مجموعه منبع : مجموعه منبعی را که میخواهید فایل در آن ذخیره شود، انتخاب کنید.
- نام دایرکتوری : دایرکتوری باید به گونهای نامگذاری شود که مختص نوع منبع و توصیفکنندههای پیکربندی باشد. این مورد را ویرایش نکنید، مگر اینکه بخواهید توصیفکنندههای پیکربندی را به صورت دستی به نام دایرکتوری اضافه کنید (به جای آن از توصیفکنندههای موجود استفاده کنید).
- توصیفکنندههای موجود : به جای اینکه توصیفکنندههای پیکربندی را به صورت دستی در نام دایرکتوری خود قرار دهید، میتوانید با انتخاب یک توصیفکننده از لیست و کلیک روی افزودن، آنها را اضافه کنید.
.
- نام فایل : نام فایل XML را وارد کنید (این نام نیازی به پسوند
- پس از افزودن تمام توصیفکنندههای مورد نظر، روی تأیید کلیک کنید.
منابع XML پیچیده درون خطی
برخی از منابع پیچیده به چندین فایل منبع XML نیاز دارند. برای مثال، در حالی که Compose دارای APIهای انیمیشن قوی است، ممکن است لازم باشد از یک vector drawable متحرک استفاده کنید که دارای یک شیء vector drawable و یک شیء animation است و حداقل به سه فایل XML نیاز دارد.
در این مثال، در صورت نیاز به استفاده مجدد از یک یا چند فایل XML، میتوانید سه فایل XML جداگانه ایجاد و نگهداری کنید. اما اگر فایلهای XML فقط برای این بردار متحرک قابل ترسیم استفاده میشوند، میتوانید از قالب منبع درونخطی ارائه شده در ابزار بستهبندی داراییهای اندروید (AAPT) استفاده کنید. با AAPT، میتوانید هر سه منبع را در یک فایل XML تعریف کنید. برای اطلاعات بیشتر، به منابع XML پیچیده درونخطی مراجعه کنید.
اضافه کردن دایرکتوری منابع
برای افزودن یک دایرکتوری منبع جدید، مراحل زیر را دنبال کنید:
- روی ماژول برنامه هدف در پنجره پروژه کلیک کنید.
- فایل > جدید > دایرکتوری منابع اندروید را انتخاب کنید.

شکل ۲. پنجرهی «فهرست منابع جدید» .
- جزئیات را در کادر محاورهای وارد کنید:
- نام دایرکتوری : دایرکتوری باید به گونهای نامگذاری شود که مختص نوع منبع و ترکیب توصیفکنندههای پیکربندی باشد. این را ویرایش نکنید، مگر اینکه بخواهید توصیفکنندههای پیکربندی را به صورت دستی به نام دایرکتوری اضافه کنید (به جای آن از توصیفکنندههای موجود استفاده کنید).
- نوع منبع: نوع منبعی را که میخواهید دایرکتوری شامل آن باشد، انتخاب کنید.
- مجموعه منبع: مجموعه منبعی را که میخواهید دایرکتوری در آن قرار گیرد، انتخاب کنید.
- توصیفکنندههای موجود: به جای اینکه توصیفکنندههای پیکربندی را به صورت دستی در نام دایرکتوری خود قرار دهید، میتوانید با انتخاب یک توصیفکننده از لیست و کلیک روی افزودن، آنها را اضافه کنید.
.
- پس از افزودن تمام توصیفکنندههای مورد نظر، روی تأیید کلیک کنید.
دایرکتوری منابع خود را تغییر دهید
به طور پیشفرض، منابع شما در module-name /src/ source-set-name /res/ قرار دارند. برای مثال، منابع مربوط به مجموعه منابع اصلی ماژول شما در مسیر src/main/res/ و منابع مربوط به مجموعه منابع اشکالزدایی در مسیر src/debug/res/ قرار دارند.
با این حال، میتوانید این مسیرها را با استفاده از ویژگی res.srcDirs در بلوک sourceSets به هر مکان دیگری (نسبت به فایل build.gradle ) تغییر دهید. برای مثال:
گرووی
android { sourceSets { main { res.srcDirs = ['resources/main'] } debug { res.srcDirs = ['resources/debug'] } } }
کاتلین
android { sourceSets { getByName("main") { res.srcDirs("resources/main") } getByName("debug") { res.srcDirs("resources/debug") } } }
همچنین میتوانید چندین دایرکتوری منبع را برای یک مجموعه منبع مشخص کنید و سپس ابزارهای ساخت آنها را با هم ادغام میکنند. برای مثال:
گرووی
android { sourceSets { main { res.srcDirs = ['res1', 'res2'] } } }
کاتلین
android { sourceSets { main { res.srcDirs("res1", "res2") } } }
برای اطلاعات بیشتر، درباره مجموعههای منبع مطالعه کنید.
ادغام منابع
منابع موجود در فایل نهایی برنامه شما میتوانند از سه منبع تهیه شوند:
- مجموعه منبع اصلی (که عموماً در
src/main/res/قرار دارد) - ساخت مجموعههای منبع متغیر
- کتابخانههای اندروید (AAR)
وقتی همه منابع از هر مجموعه منبع یا کتابخانه منحصر به فرد باشند، همه آنها به برنامه نهایی اضافه میشوند. یک منبع در صورتی منحصر به فرد در نظر گرفته میشود که نام فایل آن هم در دایرکتوری نوع منبع و هم در توصیف کننده منبع (در صورت تعریف) منحصر به فرد باشد.
اگر دو یا چند نسخه منطبق از یک منبع وجود داشته باشد، فقط یک نسخه در برنامه نهایی گنجانده میشود. ابزارهای ساخت بر اساس ترتیب اولویت زیر (بالاترین اولویت در سمت چپ) انتخاب میکنند که کدام نسخه را نگه دارند:
نوع ساخت > نوع ساخت > طعم محصول > مجموعه منبع اصلی > وابستگیهای کتابخانه
برای مثال، اگر مجموعه منبع اصلی شامل موارد زیر باشد:
-
res/values/strings.xml -
res/values-es/strings.xml
و نوع ساخت اشکالزدایی شامل موارد زیر است:
-
res/values/strings.xml
سپس برنامه نهایی شامل res/values/strings.xml از نوع ساخت debug و res/values-es/strings.xml از مجموعه منبع اصلی است.
با این حال، اگر پیکربندی ساخت شما چندین پوشه منبع را برای یک مجموعه منبع مشخص مشخص کند و بین آن منابع تداخل وجود داشته باشد، خطایی رخ میدهد و ادغام با شکست مواجه میشود زیرا هر پوشه منبع دارای اولویت یکسانی است.