يساعدك كل من Gradle والمكوّن الإضافي لنظام Gradle المتوافق مع Android في ضبط الجوانب التالية
من تصميمك:
أنواع الإصدارات
تحدِّد أنواع الإصدارات سمات معيّنة تستخدمها Gradle عند إنشاء تطبيقك وحزمه. ويتم عادةً ضبط أنواع الإصدارات لمراحل مختلفة من مراحل تطوير التطبيق.
على سبيل المثال، يُفعِّل نوع الإصدار المخصّص لتصحيح الأخطاء
خيارات تصحيح الأخطاء ويوقّع التطبيق باستخدام مفتاح تصحيح الأخطاء، في حين قد يُقلِّل نوع الإصدار المخصّص للنشر حجم تطبيقك ويشوّش رمزه ويوقّعه باستخدام مفتاح
إصدار للتوزيع.
يجب تحديد نوع إصدار واحد على الأقل لمحاولة
إنشاء تطبيقك. ينشئ Android Studio نوعَي الإصدار "تصحيح أخطاء" و"الإصدار العلني"
تلقائيًا. لبدء تخصيص إعدادات الحزمة لتطبيقك، تعرَّف على كيفية
ضبط أنواع الإصدار
.
نكهات المنتجات
تمثّل نكهات المنتجات إصدارات مختلفة من تطبيقك يمكنك
طرحها للمستخدمين، مثل الإصدارات المجانية والمدفوعة. يمكنك
تخصيص أنواع المنتجات لاستخدام رموز برمجية وموارد مختلفة أثناء مشاركة
وإعادة استخدام الأجزاء المشتركة بين جميع إصدارات تطبيقك. وأنواع المنتجات
اختيارية، وعليك إنشاؤها يدويًا. لبدء إنشاء
إصدارات مختلفة من تطبيقك، يُرجى الاطّلاع على كيفية ضبط
نكهات المنتج.
إنشاء الأسعار المتغيرة
نوع الإصدار هو منتج يجمع بين نوع الإصدار ونكهة المنتج، وهو الإعداد الذي يستخدمه Gradle لإنشاء تطبيقك. باستخدام أنواع الإصدار،
يمكنك إنشاء إصدار تصحيح الأخطاء لنكهات المنتج أثناء التطوير،
وإصدارات الإصدار الموقَّع لنكهات المنتج للتوزيع.
على الرغم من أنّك لا تضبط الأسعار المتغيرة للإصدارات مباشرةً، يمكنك ضبط
أنواع الإصدارات وأنواع المنتجات التي تشكلها. يؤدي إنشاء أنواع ملف أنشأ
إضافية أو أنواع منتجات إضافية إلى إنشاء خيارات إضافية لملف الإنشاء. للتعرّف على
كيفية إنشاء صيغ الإصدار وإدارتها، يُرجى الاطّلاع على النظرة العامة حول ضبط صيغ الإصدار
.
إدخالات البيان
يمكنك تحديد قيم لبعض سمات ملف البيان في إعدادات
صيغة الإصدار. تلغي قيم الإصدار هذه القيم الحالية في
ملف البيان. ويكون هذا الإجراء مفيدًا إذا كنت تريد إنشاء صيغ متعدّدة
لتطبيقك باستخدام اسم تطبيق مختلف أو إصدار أدنى من إصدار حزمة تطوير البرامج (SDK)
أو إصدار مستهدَف لحزمة تطوير البرامج (SDK). عند توفُّر بيانات بيان متعددة،
تدمج أداة دمج البيانات إعدادات البيانات البيانية.
التبعيات
يدير نظام الإنشاء متطلّبات المشروع من نظام الملفات على الجهاز
ومن المستودعات البعيدة. وهذا يعني أنّه ليس عليك يدويًا
بحث الحِزم الثنائية للتبعيات وتنزيلها ونسخها إلى directory
المشروع. لمعرفة المزيد من المعلومات، يُرجى الاطّلاع على مقالة إضافة تبعيات الإنشاء
.
التوقيع
يتيح لك نظام الإنشاء تحديد إعدادات التوقيع في إعدادات الإنشاء
، ويمكنه توقيع تطبيقك تلقائيًا أثناء عملية الإنشاء
. يوقّع نظام الإنشاء إصدار تصحيح الأخطاء باستخدام مفتاح وشهادة تلقائيَين
باستخدام بيانات اعتماد معروفة لتجنُّب طلب كلمة المرور في وقت الإنشاء
. لا يوقّع نظام الإنشاء إصدار الإصدار ما لم يتم تحديد إعداد توقيع لهذا الإصدار بشكل صريح. إذا لم يكن لديك مفتاح إصدار، يمكنك إنشاء مفتاح كما هو موضّح في توقيع تطبيقك. يلزم توفّر تصاميم الإصدارات الموقَّعة لتوزيع التطبيقات من خلال معظم متاجر التطبيقات.
تقليص حجم الرموز والموارد
يتيح لك نظام الإنشاء تحديد ملف قواعد ProGuard مختلف لكل نوع من أنواع الإصدارات. عند إنشاء تطبيقك، يطبّق نظام الإنشاء
المجموعة المناسبة من القواعد لتصغير
رموزك البرمجية ومواردك باستخدام أدوات التصغير المضمّنة، مثل R8.
يمكن أن يساعد تصغير الرمز البرمجي والموارد في تقليل حجم حِزم APK أو حِزم AAB.
إتاحة عدة حِزم APK
يتيح لك نظام الإنشاء إنشاء حِزم APK مختلفة تلقائيًا
تحتوي كل حزمة منها على الرمز البرمجي والموارد اللازمة فقط
لكثافة شاشة أو واجهة ثنائية لتطبيق (ABI) معيّنة.
لمزيد من المعلومات، يُرجى الاطّلاع على
إنشاء حِزم APK متعددة. مع ذلك، فإنّ إطلاق تنسيق AAB واحد هو
النهج الموصى به، لأنّه يتيح التقسيم حسب اللغة بالإضافة إلى كثافة الشاشة وواجهة التطبيق الثنائية (ABI)، مع تجنُّب الحاجة إلى تحميل
عناصر متعددة إلى Google Play. يجب استخدام "مجموعات حزمات تطبيق Android" في جميع التطبيقات الجديدة التي تم إرسالها بعد آب (أغسطس) 2021.
إصدارات Java في إصدارات Android
سواء كان رمز المصدر مكتوبًا بلغة Java أو Kotlin أو كليهما،
هناك عدة مواضع يجب فيها اختيار إصدار JDK أو لغة Java
لإنشاء حِزمك. اطّلِع على إصدارات Java في إصدارات Android
لمعرفة التفاصيل.
إنشاء ملفات الإعداد
يتطلب إنشاء عمليات تهيئة إنشاء مخصص إجراء تغييرات على ملف أو أكثر من ملفات تهيئة الإصدار. تستخدم ملفات النص العادي هذه لغة خاصة بالمجال (DSL) لوصف منطق التصميم ومعالجته باستخدام نص Kotlin البرمجي، وهو أحد أشكال لغة Kotlin. يمكنك أيضًا استخدام Groovy، وهي لغة ديناميكية لآلة Java الافتراضية (JVM)، لإعداد إصداراتك.
لست بحاجة إلى معرفة لغة Kotlin script أو Groovy لبدء ضبط عملية المعالجة، لأنّ المكوّن الإضافي لنظام Android Gradle يقدّم معظم عناصر لغة برمجة التطبيقات البنيوية التي تحتاج إليها. لمعرفة المزيد من المعلومات حول مكوّن DSL الإضافي لنظام Gradle المتوافق مع Android، يمكنك الاطّلاع على المستندات المرجعية لـ DSL. يعتمد نص Kotlin أيضًا على
Gradle Kotlin DSL الأساسي.
عند بدء مشروع جديد، ينشئ Android Studio تلقائيًا بعضًا من
هذه الملفات ويملؤها استنادًا إلى الإعدادات التلقائية المناسبة. للحصول على نظرة عامة على الملفات التي تم إنشاؤها، راجِع بنية إصدار Android.
ملف Gradle Wrapper
أداة Gradle wrapper (gradlew) هي تطبيق صغير مضمّن في
الرمز المصدر الذي يعمل على تنزيل Gradle نفسه وتشغيله.
ويؤدي ذلك إلى تنفيذ عملية الإنشاء بشكل أكثر اتساقًا. يمكن لمطوّري البرامج تنزيل
مصدر التطبيق وتشغيل gradlew. وسيؤدي ذلك إلى تنزيل توزيع Gradle المطلوب
وإطلاق Gradle لإنشاء تطبيقك.
يحتوي ملف gradle/wrapper/gradle-wrapper.properties
على سمة distributionUrl تصف إصدار IDE IDE الذي يتم استخدامه لتشغيل عملية الإنشاء.
يمكن العثور على ملف settings.gradle.kts (لـ Kotlin DSL) أو
ملف settings.gradle (لـ Groovy DSL) في دليل المشروع
الجذر. يحدِّد ملف الإعدادات هذا إعدادات المستودع
على مستوى المشروع ويُعلم Gradle بالوحدات التي يجب أن يتضمّنها عند إنشاء
تطبيقك. ويجب أن تحدِّد المشاريع المتعدّدة الوحدات كل وحدة يجب تضمينها في الإصدار
النهائي.
في معظم المشاريع، يظهر الملف على النحو التالي تلقائيًا:
يمكن العثور على ملف build.gradle.kts (للغة Kotlin DSL) أو
build.gradle (للغة Groovy DSL) من المستوى الأعلى في دليل المشروع
الجذر. ويحدِّد هذا الملف عادةً الإصدارات الشائعة من الإضافات التي تستخدمها الوحدات في مشروعك.
يصف نموذج الرمز البرمجي التالي الإعدادات التلقائية وعناصر لغة وصف البيانات (DSL) في
نص إنشاء المستوى الأعلى بعد إنشاء مشروع جديد:
يمكن العثور على ملف build.gradle.kts (للغة Kotlin DSL) أو
build.gradle (للغة Groovy DSL) على مستوى الوحدة في كل ملف
project/module/. يتيح لك هذا الإعداد
ضبط إعدادات الإصدار للوحدة النمطية التي تقع فيها. يتيح لك ضبط
إعدادات الإنشاء هذه تقديم خيارات حزمة مخصّصة، مثل
أنواع الإنشاء الإضافية وأنواع المنتجات الإضافية، وإلغاء الإعدادات فيملف بيان تطبيق
main/ أو نص إنشاء المستوى الأعلى.
إعدادات حزمة تطوير البرامج (SDK) لنظام التشغيل Android
يشتمل ملف التصميم على مستوى الوحدة لتطبيقك على إعدادات تشير إلى
إصدارات حزمة تطوير البرامج (SDK) لنظام التشغيل Android المستخدمة عند التجميع واختيار سلوكيات النظام الأساسي
وتحديد الحد الأدنى للإصدار الذي يعمل عليه تطبيقك.
الشكل 1. حِزم تطوير البرامج (SDK) لنظام التشغيل Android في إصدار
compileSdk
يحدِّد compileSdk واجهات برمجة تطبيقات Android وJava التي
تتوفّر عند تجميع رمز المصدر. لاستخدام أحدث ميزات Android
، استخدِم أحدث حزمة تطوير برامج Android عند الترجمة.
قد لا تتوفّر بعض واجهات برمجة تطبيقات نظام Android الأساسي
في الإصدارات القديمة من واجهات برمجة التطبيقات. يمكنك
حظر استخدام الميزات الأحدث بشكل مشروط أو استخدام
مكتبات التوافق مع AndroidX لاستخدام الميزات الأحدث مع
مستويات أقل من واجهات برمجة تطبيقات Android.
توفّر كل حزمة تطوير برامج (SDK) لنظام التشغيل Android مجموعة فرعية من واجهات برمجة تطبيقات Java لاستخدامها في تطبيقك.
يعرض الجدول في المقالة
واجهات برمجة تطبيقات Java التي يمكنني استخدامها في رمز Java أو Kotlin المصدر
مستوى واجهة برمجة تطبيقات Java المتاح استنادًا إلى إصدار حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
تتوفّر واجهات برمجة تطبيقات Java الأحدث على الإصدارات القديمة من Android من خلال
إزالة رمز السكر، ويجب
تفعيل هذه الميزة في الإصدار.
يعرض "استوديو Android" تحذيرات إذا كان compileSdk يتعارض
مع متطلبات الاعتماد على مكتبة
"استوديو Android" أو AGP أو متطلبات الاعتماد على مكتبة مشروعك.
minSdk
يحدِّد minSdk أدنى إصدار من Android
تريد أن يكون تطبيقك متوافقًا معه. يحدّد الإعداد minSdk
الأجهزة التي يمكنها تثبيت تطبيقك.
قد تتطلّب إتاحة الإصدارات الأقدم من Android إجراء المزيد من عمليات التحقّق الشَرطية
في رمزك البرمجي أو استخدام المزيد من مكتبات التوافق مع AndroidX. يجب مراعاة
نسبة تكلفة الصيانة مقابل إتاحة الإصدارات الأقدم مقارنةً
بالنسبة المئوية للمستخدمين الذين لا يزالون يستخدمون هذه الإصدارات الأقدم. اطّلِع على الرسم البياني للإصدارات في معالج المشروع الجديد في "استوديو Android" لمعرفة النسب المئوية لاستخدام الإصدار الحالي.
عند تعديل الرمز البرمجي في Android Studio أو إجراء عمليات التحقّق أثناء
عملية الإنشاء، سيُرسل أداة lint تحذيرًا بشأن واجهات برمجة التطبيقات التي تستخدمها والتي لا تتوفّر
في minSdk. يجب إصلاح هذه الأخطاء من خلال
جعل الميزات الأحدث مشروطة أو باستخدام
Appcompat للتوافق مع الإصدارات القديمة.
targetSdk
يخدم targetSdk غرضين:
يحدد سلوك بيئة تشغيل التطبيق.
ويُثبت هذا الاختبار إصدار Android الذي تم اختبار التطبيق عليه.
إذا كان تطبيقك يعمل على جهاز يستخدم إصدارًا أحدث من Android مقارنةً بالإصدار المُدرَج في targetSdk، سيشغّل Android تطبيقك في وضع توافق
يعمل بالطريقة نفسها التي يعمل بها الإصدار الأقدم المُدرَج في
targetSdk. على سبيل المثال، عندما طرحت واجهة برمجة التطبيقات 23 نموذج أذونات
وقت التشغيل، لم تكن بعض التطبيقات جاهزة لتطبيقه على الفور.
من خلال ضبط targetSdk على 22، يمكن تشغيل هذه التطبيقات على
الأجهزة التي تعمل بواجهة برمجة التطبيقات 23 بدون استخدام أذونات وقت التشغيل، ويمكنها استخدام الميزات
المضمّنة في أحدث إصدار من compileSdk. تفرض سياسة التوزيع على Google Play
سياسات إضافية على مستوى واجهة برمجة التطبيقات المستهدَف.
يجب أن تكون قيمة targetSdk أقل من أو مساوية
لقيمة compileSdk.
ملاحظة: ليس من الضروري أن تكون قيمتا compileSdk وtargetSdk متطابقة. ضع المبادئ الأساسية التالية في الاعتبار:
يوفّر لك compileSdk إمكانية الوصول إلى واجهات برمجة تطبيقات جديدة.
targetSdk لضبط سلوك وقت تشغيل تطبيقك
يجب أن تكون قيمة targetSdk أقل من أو تساوي compileSdk
نموذج نص برمجي لإنشاء وحدة التطبيق
يوضح هذا النموذج النصي لإنشاء وحدة تطبيق Android بعض عناصر وإعدادات DSL الأساسية:
يتضمّن Gradle أيضًا ملفي ملفّات خصائص، يقعان في دليل
المشروع الجذر، ويمكنك استخدامهما لتحديد إعدادات مجموعة أدوات Gradle لإنشاء التطبيقات
نفسها:
gradle.properties
يمكنك هنا ضبط إعدادات Gradle على مستوى المشروع، مثل
حجم الحِزمة القصوى لخادم Gradle. لمزيد من المعلومات، يُرجى الاطّلاع على تصميم البيئة.
local.properties
تضبط هذه السمة خصائص البيئة المحلية لنظام الإنشاء، بما في ذلك
ما يلي:
ndk.dir - مسار حِزم NDK تم إيقاف هذه السمة نهائيًا. يتم تثبيت أي إصدارات تم تنزيلها من حزمة NDK في الدليل
ndk ضمن دليل حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
sdk.dir: مسار حزمة تطوير البرامج (SDK) لنظام التشغيل Android
cmake.dir - المسار إلى CMake.
ndk.symlinkdir - في الإصدار 3.5 من "استوديو Android" والإصدارات الأحدث،
يتم إنشاء رابط رمزي إلى حزمة NDK يمكن أن يكون أقصر من مسار حزمة NDK المثبَّتة.
إعادة ربط حزمة NDK بمسار أقصر (نظام التشغيل Windows فقط)
في نظام التشغيل Windows، تنتهي الأدوات في مجلد NDK المثبّت، مثل ld.exe، بمسارات طويلة. لا تدعم الأدوات المسارات الطويلة بشكل جيد.
لإنشاء مسار أقصر، في local.properties، اضبط السمة
ndk.symlinkdir لطلب إنشاء رابط رمزي إلى NDK من خلال المكوّن الإضافي لنظام Gradle المتوافق مع Android. ويمكن أن يكون مسار هذا الرابط الرمزي أقصر من مجلد NDK الحالي.
على سبيل المثال، ينتج عن ndk.symlinkdir = C:\ الرابط الرمزي التالي:
C:\ndk\19.0.5232133
مزامنة المشروع مع ملفات Gradle
عند إجراء تغييرات على ملفات إعدادات التصميم في مشروعك،
يطلب منك "استوديو Android" مزامنة ملفات مشروعك حتى تتمكّن من
استيراد تغييرات إعدادات التصميم وإجراء بعض عمليات التحقّق للتأكّد من عدم
حدوث أخطاء في التصميم.
لمزامنة ملفات المشروع، انقر على مزامنة الآن في
شريط الإشعارات الذي يظهر عند إجراء تغيير، كما هو موضّح في
الشكل 2، أو انقر على مزامنة المشروع
من شريط القوائم. إذا رصد Android Studio أي أخطاء في إعدادات
، على سبيل المثال، إذا كان رمز المصدر يستخدم ميزات واجهة برمجة التطبيقات التي لا تتعذّر
إتاحتها إلا في مستوى واجهة برمجة تطبيقات أعلى من compileSdkVersion
، تصف نافذة الرسائل المشكلة.
الشكل 2. مزامنة المشروع مع ملفات إعدادات الإنشاء
في "استوديو Android"
مجموعات المصادر
يُجمِّع "استوديو Android" رمز المصدر والموارد لكل وحدة
في مجموعات مصادر. عند إنشاء وحدة جديدة، ينشئ "استوديو Android"
مجموعة مصادر main/ داخل الوحدة. تتضمّن مجموعة main/main/ للمكوّن رمزه وموارده المستخدَمة في جميع main/ أنواع الإصدارات.
إنّ أدلة مجموعة المصادر الإضافية اختيارية، ولا تنشئ أداة Android IDE
هذه الأدلة تلقائيًا نيابةً عنك عند ضبط أنواع ملف برمجي
جديدة. ومع ذلك، يساعد إنشاء مجموعات مصادر، مثل main/، في تنظيم الملفات والموارد التي يجب أن تستخدمها Gradle فقط عند إنشاء إصدارات معيّنة من تطبيقك:
src/main/
تتضمّن مجموعة المصادر هذه الرموز البرمجية والموارد المشتركة بين جميع صيغ الإصدار.
src/buildType/
أنشئ مجموعة المصادر هذه لتضمين الرموز البرمجية والموارد لنوع ملف برمجي معيّن فقط.
src/productFlavor/
يمكنك إنشاء مجموعة المصادر هذه لتضمين الرموز والموارد الخاصة بنكهة معيّنة
من المنتج فقط.
ملاحظة: في حال ضبط عملية الإنشاء على دمج عدة
أنواع منتجات، يمكنك إنشاء أدلة مجموعات مصادر لكل
تركيبة من أنواع المنتجات بين سمات الأنواع:
src/productFlavor1ProductFlavor2/.
src/productFlavorBuildType/
يمكنك إنشاء مجموعة المصادر هذه لتضمين الرموز والموارد لخيار
إصدار معيّن فقط.
على سبيل المثال، لإنشاء إصدار "fullDebug" من تطبيقك، يُدمج
نظام الإنشاء الرموز البرمجية والإعدادات والموارد من مجموعات المصادر التالية:
src/fullDebug/ (مجموعة مصادر الصيغة)
src/debug/ (مجموعة مصادر نوع الإصدار)
src/full/ (مجموعة مصادر نكهة المنتج)
src/main/ (مجموعة المصادر الرئيسية)
ملاحظة: عند إنشاء ملف أو دليل جديد في "استوديو Android"، يمكنك استخدام خيارات القائمة ملف > جديد لإنشائه لمجموعة مصادر محدّدة. تستند مجموعات المصادر التي يمكنك الاختيار من بينها
إلى إعدادات الإنشاء، وينشئ Android Studio تلقائيًا
الأدلة المطلوبة إذا لم تكن متوفّرة.
إذا كانت مجموعات المصادر المختلفة تحتوي على إصدارات مختلفة من الملف نفسه، يستخدم Gradle
ترتيب الأولوية التالي عند تحديد الملف الذي سيتم استخدامه. تلغي مجموعات
المصادر على اليسار الملفات وإعدادات مجموعات المصادر على
اليمين:
صيغة الإصدار > نوع الإصدار > نوع المنتج > مجموعة المصادر الرئيسية >
تبعيات المكتبة
يتيح ذلك لـ Gradle استخدام الملفات الخاصة بنوع الإصدار الذي
تحاول إنشاؤه مع إعادة استخدام الأنشطة ومنطق التطبيق والمراجع
الشائعة في الإصدارات الأخرى من تطبيقك.
عند دمج عدة ملفات بيان، يستخدم Gradle ترتيب الأولوية نفسه حتى يتمكّن كلّ إصدار من الإصدارات المتعدّدة من تحديد مكونات أو أذونات مختلفة في البيان النهائي. لمزيد من المعلومات
عن إنشاء مجموعات مصادر مخصّصة، يُرجى الاطّلاع على مقالة إنشاء مجموعات مصادر.
كتالوجات الإصدارات
إذا كان الإصدار يحتوي على عدة وحدات تتضمّن تبعيات شائعة، أو إذا كان لديك عدة مشاريع مستقلة تتضمّن تبعيات شائعة، ننصحك باستخدام قائمة الإصدارات أو فاتورة المواد (BOM) لتحديد الإصدارات الشائعة.
أنظمة التصميم الأخرى
إنّ إنشاء تطبيقات Android باستخدام Bazel هو
إجراء ممكن ولكنّه غير مدعوم رسميًا. لا يدعم استوديو Android
مشروعات Bazel رسميًا.
للتعرّف بشكل أفضل على القيود الحالية للإنشاء باستخدام Bazel، يُرجى الاطّلاع على المشاكل المعروفة.
هل كان المحتوى مفيدًا؟
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-04-03 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-04-03 (حسب التوقيت العالمي المتفَّق عليه)"],[],[]]