إضافة موارد تطبيقات

يتم تنظيم موارد التطبيق، مثل رموز التطبيقات والسلاسل المترجَمة والصور النقطية، في أدلة خاصة بنوع المورد داخل دليل res/ لكل وحدة. يمكنك أيضًا إضافة إصدارات بديلة من كل ملف تم تحسينه لإعدادات مختلفة للأجهزة، مثل إصدار عالي الدقة من صورة نقطية للشاشات عالية الكثافة.

تساعدك "استوديو Android" في إضافة موارد جديدة وموارد بديلة بعدة طرق، وذلك حسب نوع المورد الذي تريد إضافته. توضّح هذه الصفحة كيفية إضافة ملفات الموارد الأساسية وكيفية تغيير موقع مواردك وكيفية عمل عملية دمج الموارد.

في Jetpack Compose، يمكنك تحديد واجهة المستخدم بلغة Kotlin بدلاً من تنسيقات XML. ومع ذلك، سيظل بإمكانك استخدام دليل res/ لتخزين مواد العرض الثابتة على مستوى التطبيق، مثل الرموز والخطوط والترجمات. لمعرفة كيفية الوصول إلى هذه الموارد في الدوال القابلة للإنشاء، اطّلِع على مقالة الموارد في Compose.

اطّلِع على الصفحات التالية للحصول على تفاصيل حول كيفية إنشاء أنواع معيّنة من الموارد:

لمعرفة كيفية الإشارة إلى الموارد من رمز تطبيقك، اطّلِع على مقالة نظرة عامة على موارد التطبيق.

إضافة ملف موارد بتنسيق XML

على الرغم من أنّ الروابط في الصفحة السابقة تصف مهام سير عمل مخصّصة لكل نوع من أنواع الموارد، يمكنك إضافة أي ملف موارد بتنسيق XML باتّباع الخطوات التالية:

  1. انقر على وحدة التطبيق المستهدَفة في نافذة المشروع في عرض Android أو عرض المشروع.
  2. انقر على ملف > جديد > ملف موارد Android.

    الشكل 1: مربّع حوار ملف موارد جديد

  3. املأ التفاصيل في مربّع الحوار:
    • اسم الملف: أدخِل اسم ملف XML (لا يتطلب ذلك اللاحقة .xml).
    • نوع المورد: اختَر نوع المورد الذي تريد إنشاءه.
    • العنصر الجذر: اختَر عنصر XML الجذر للملف، إذا كان ذلك منطبقًا. لا تتيح بعض أنواع الموارد سوى نوع واحد من العناصر الجذرية. قد لا يكون هذا الخيار قابلاً للتعديل بناءً على نوع المورد الذي تم اختياره.
    • مجموعة رموز المصدر: اختَر مجموعة رموز المصدر التي تريد حفظ الملف فيها.
    • اسم الدليل: يجب تسمية الدليل بطريقة خاصة بنوع المورد ومحدِّدات الإعدادات. لا تعدِّل هذا الخيار إلا إذا أردت إضافة محدِّدات الإعدادات إلى اسم الدليل يدويًا (استخدِم المحدِّدات المتاحة بدلاً من ذلك).
    • المحدِّدات المتاحة: بدلاً من تضمين محدِّدات الإعدادات في اسم الدليل يدويًا، يمكنك إضافتها من خلال اختيار محدِّد من القائمة والنقر على إضافة .
  4. بعد إضافة جميع المحدِّدات التي تريدها، انقر على حسنًا.

تضمين موارد XML المعقّدة

تتطلب بعض الموارد المعقّدة ملفات موارد متعددة بتنسيق XML. على سبيل المثال، على الرغم من أنّ Compose تتضمّن واجهات برمجة تطبيقات قوية لـ الصور المتحركة، قد تحتاج إلى استخدام رسم متّجه متحرّك يحتوي على عنصر متّجه قابل للرسم وعنصر صورة متحركة و يتطلب ثلاثة ملفات XML على الأقل.

في هذا المثال، يمكنك إنشاء ملفات XML الثلاثة المنفصلة والاحتفاظ بها إذا كنت بحاجة إلى إعادة استخدام واحد أو أكثر منها. ولكن إذا كانت ملفات XML تُستخدم فقط لهذا متّجه قابل للرسم المتحرّك، يمكنك بدلاً من ذلك استخدام تنسيق الموارد المضمّنة المتوفّر في أداة تجميع الموارد في Android (AAPT). باستخدام AAPT، يمكنك تحديد جميع الموارد الثلاثة في ملف XML واحد. لمزيد من المعلومات، اطّلِع على مقالة تضمين موارد XML المعقّدة.

إضافة دليل موارد

لإضافة دليل موارد جديد، اتّبِع الخطوات التالية:

  1. انقر على وحدة التطبيق المستهدَفة في نافذة المشروع.
  2. انقر على ملف > جديد > دليل موارد Android.

    الشكل 2: مربّع حوار دليل موارد جديد

  3. املأ التفاصيل في مربّع الحوار:
    • اسم الدليل: يجب تسمية الدليل بطريقة خاصة بنوع المورد ومجموعة محدِّدات الإعدادات. لا تعدِّل هذا الخيار إلا إذا أردت إضافة محدِّدات الإعدادات إلى اسم الدليل يدويًا (استخدِم المحدِّدات المتاحة بدلاً من ذلك).
    • نوع المورد: اختَر نوع المورد الذي تريد أن يحتوي عليه الدليل.
    • مجموعة رموز المصدر: اختَر مجموعة رموز المصدر التي تريد أن يكون الدليل فيها.
    • المحدِّدات المتاحة: بدلاً من تضمين محدِّدات الإعدادات في اسم الدليل يدويًا، يمكنك إضافتها من خلال اختيار محدِّد من القائمة والنقر على إضافة .
  4. بعد إضافة جميع المحدِّدات التي تريدها، انقر على حسنًا.

تغيير دليل الموارد

تكون مواردك موجودة تلقائيًا في module-name/src/source-set-name/res/. على سبيل المثال، توجد موارد مجموعة رموز المصدر الرئيسية في وحدتك في src/main/res/، وتوجد موارد مجموعة رموز مصدر تصحيح الأخطاء في src/debug/res/.

ومع ذلك، يمكنك تغيير هذه المسارات إلى أي موقع آخر (بالنسبة إلى ملف build.gradle) باستخدام السمة res.srcDirs في حزمة sourceSets. على سبيل المثال:

أنيق

android {
    sourceSets {
        main {
            res.srcDirs = ['resources/main']
        }
        debug {
            res.srcDirs = ['resources/debug']
        }
    }
}

Kotlin

android {
    sourceSets {
        getByName("main") {
            res.srcDirs("resources/main")
        }
        getByName("debug") {
            res.srcDirs("resources/debug")
        }
    }
}

يمكنك أيضًا تحديد أدلة موارد متعددة لمجموعة رموز مصدر واحدة، ثم تدمجها أدوات الإصدار معًا. على سبيل المثال:

أنيق

android {
    sourceSets {
        main {
            res.srcDirs = ['res1', 'res2']
        }
    }
}

Kotlin

android {
    sourceSets {
        main {
            res.srcDirs("res1", "res2")
        }
    }
}

لمزيد من المعلومات، اطّلِع على مقالة مجموعات رموز المصدر.

دمج الموارد

يمكن أن تأتي الموارد في ملف تطبيقك النهائي من ثلاثة مصادر:

  • مجموعة رموز المصدر الرئيسية (توجد عادةً في src/main/res/)
  • مجموعات رموز المصدر تنويعات التصميم
  • مكتبات Android ‏ (AAR)

عندما تكون جميع الموارد من كل مجموعة رموز مصدر أو مكتبة فريدة، تتم إضافتها جميعًا إلى التطبيق النهائي. يُعدّ المورد فريدًا إذا كان اسم ملفه فريدًا ضمن كل من دليل نوع المورد ومؤهِّل الموارد (إذا تم تحديده).

إذا كان هناك إصداران أو أكثر متطابقان من المورد نفسه، يتم تضمين إصدار واحد فقط في التطبيق النهائي. تختار أدوات الإصدار الإصدار الذي سيتم الاحتفاظ به استنادًا إلى ترتيب الأولوية التالي (الأولوية الأعلى على اليمين):

تنويعة التصميم > نوع التصميم > صيغة المنتج > مجموعة رموز المصدر الرئيسية > اعتمادية المكتبة

على سبيل المثال، إذا كانت مجموعة رموز المصدر الرئيسية تحتوي على:

  • res/values/strings.xml
  • res/values-es/strings.xml

وكان نوع التصميم المخصص لتصحيح الأخطاء يحتوي على:

  • res/values/strings.xml

عندئذٍ، يتضمّن التطبيق النهائي res/values/strings.xml من نوع إصدار تصحيح الأخطاء وres/values-es/strings.xml من مجموعة رموز المصدر الرئيسية.

ومع ذلك، إذا كان إعدادات التصميم يحدّد مجلدات موارد متعددة لمجموعة رموز مصدر معيّنة وكانت هناك تعارضات بين هذه المصادر، سيحدث خطأ وستفشل عملية الدمج لأنّ كل دليل موارد له الأولوية نفسها.