توضِّح هذه الصفحة إعدادات التطبيق المفيدة في build.gradle.kts
ملف
على مستوى الوحدة. بالإضافة إلى تقديم نظرة عامة على السمات المهمة التي تم ضبطها في ملف
build.gradle.kts
، يمكنك التعرّف على كيفية إجراء ما يلي:
- تغيير رقم تعريف التطبيق لإعدادات الإصدار المختلفة
- تعديل مساحة الاسم بأمان بغض النظر عن معرّف التطبيق
ضبط رقم تعريف التطبيق
يحتوي كل تطبيق Android على رقم تعريف فريد يشبه اسم أي حزمة من حِزم Java أو Kotlin، مثل com.example.myapp. يحدِّد رقم التعريف هذا تطبيقك بشكلٍ فريد على الجهاز وفي "متجر Google Play".
يتم تحديد رقم تعريف تطبيقك من خلال سمة applicationId
في ملف
build.gradle.kts
الخاص بالوحدة، كما هو موضّح هنا. عدِّل قيمة applicationId
عن طريق استبدال com.example.myapp
برقم تعريف
تطبيقك:
Kotlin
android { defaultConfig { applicationId = "com.example.myapp" minSdk = 15 targetSdk = 24 versionCode = 1 versionName = "1.0" } ... }
رائع
android { defaultConfig { applicationId "com.example.myapp" minSdkVersion 15 targetSdkVersion 24 versionCode 1 versionName "1.0" } ... }
على الرغم من أنّ رقم تعريف التطبيق يشبه اسم حزمة Kotlin أو Java تقليديًا، فإنّ قواعد تسمية رقم تعريف التطبيق أكثر تقييدًا بعض الشيء:
- يجب أن يتضمّن مقطعَين على الأقل (نقطة واحدة أو أكثر).
- يجب أن يبدأ كلّ مقطع بحرف.
- يجب أن تكون جميع الأحرف أبجدية رقمية أو شرطة سفلية [a-zA-Z0-9_].
عند إنشاء مشروع جديد في Android
Studio، يتم تحديد اسم الحزمة الذي اخترته أثناء الإعداد تلقائيًا لتطبيق applicationId
. يمكنك
من الناحية الفنية التبديل بين الموقعَين بشكل مستقل من ذلك الحين فصاعدًا، ولكن
لا يُنصح بذلك.
ننصحك باتّباع الخطوات التالية عند ضبط معرّف التطبيق:
- يجب أن يكون رقم تعريف التطبيق مطابقًا لمساحة الاسم. قد يكون التمييز بين الساحتَين مربكًا بعض الشيء، ولكن إذا أبقيتهما متطابقتَين، لن يكون هناك ما يدعو للقلق.
- لا تغيِّر رقم تعريف التطبيق بعد نشره. وإذا غيّرته، tratará "متجر Google Play" عملية التحميل اللاحقة على أنّها عملية تحميل تطبيق جديد.
- حدِّد معرّف التطبيق صراحةً. إذا لم يتم تحديد رقم تعريف التطبيق
بوضوح باستخدام السمة
applicationId
، سيأخذ تلقائيًا القيمة نفسها التي تخصّ مساحة الاسم. وهذا يعني أنّ تغيير مساحة الاسم يؤدي إلى تغيير معرّف التطبيق، وهو ما لا تريده عادةً.
تغيير رقم تعريف التطبيق للاختبار
تطبِّق أدوات الإنشاء تلقائيًا معرّف تطبيق على حزمة APK الخاصة باختبار
الأدوات الاختبارية
باستخدام معرّف التطبيق لخيار الإصدار المحدّد مع إرفاقه بالرموز التالية:
.test
. على سبيل المثال، تحتوي حزمة APK اختبارية لصيغة الإصدار
com.example.myapp.free
على معرّف التطبيق
com.example.myapp.free.test
.
على الرغم من أنّه من المفترض ألا يكون ذلك ضروريًا، يمكنك تغيير معرّف التطبيق من خلال
تحديد سمة testApplicationId
في عنصر defaultConfig
أو
productFlavor
.
ضبط مساحة الاسم
تحتوي كل وحدة Android على مساحة اسم، والتي تُستخدَم كملصق حزمة Kotlin أو Java
لأجل
فئتَي R
وBuildConfig
التي تم إنشاؤها.
يتم تحديد مساحة الاسم الخاصة بك من خلال السمة namespace
في ملف
build.gradle.kts
الخاص بالوحدة، كما هو موضّح في مقتطف الرمز البرمجي التالي. يتم ضبط namespace
في البداية على اسم الحزمة الذي تختاره عند
إنشاء مشروعك.
Kotlin
android { namespace = "com.example.myapp" ... }
رائع
android { namespace "com.example.myapp" ... }
أثناء إنشاء تطبيقك في حزمة التطبيق النهائية (APK)، تستخدم
أدوات إنشاء تطبيقات Android مساحة الاسم كمساحة اسم لفئة R
التي تم إنشاؤها في تطبيقك، والتي يتم استخدامها للوصول إلى
موارد تطبيقك.
على سبيل المثال، في ملف الإنشاء السابق، يتم إنشاء فئة R
في
com.example.myapp.R
.
يجب أن يتطابق دائمًا الاسم الذي تحدّده لسمة namespace
في ملف build.gradle.kts
مع اسم الحزمة الأساسية لمشروعك، حيث تحتفظ
بالأنشطة ورمز التطبيق الآخر. يمكنك تضمين حِزم فرعية أخرى في
مشروعك، ولكن يجب أن تستورد هذه الملفات فئة R
باستخدام
نطاق الاسم من الموقع namespace
.
لتبسيط سير العمل، يجب أن تكون مساحة الاسم مماثلة لرقم تعريف التطبيق، لأنّهما متطابقان تلقائيًا.
تغيير مساحة الاسم
في معظم الحالات، يجب إبقاء مساحة الاسم ورقم تعريف التطبيق متطابقَين، كما هو الحال تلقائيًا. ومع ذلك، قد تحتاج إلى تغيير مساحة الاسم في وقت ما إذا كنت تعيد تنظيم الرمز البرمجي أو لتجنُّب تعارضات مساحة الاسم.
في هذه الحالات، يمكنك تغيير مساحة الاسم من خلال تعديل سمة
namespace
في ملفbuild.gradle.kts
الخاص بالوحدة، وذلك بشكل مستقل عن
رقم تعريف التطبيق. قبل إجراء ذلك، تأكَّد من تحديد معرّف التطبيق
بوضوح، لكي لا يؤدي تغيير مساحة الاسم إلى تغيير
معرّف التطبيق أيضًا. لمزيد من المعلومات حول كيفية تأثير مساحة الاسم في
رقم تعريف التطبيق، يُرجى الاطّلاع على ضبط رقم تعريف التطبيق.
إذا كانت لديك أسماء مختلفة لكل من namespace
وapplicationId
Gradle، ستنسخ أدوات الإنشاء
معرّف التطبيق في ملف البيان النهائي لتطبيقك في نهاية عملية الإنشاء.
لذلك، إذا فحصت ملف AndroidManifest.xml
بعد إنشاء إصدار، يتم ضبط السمة package
على قيمة معرّف التطبيق. سمة package
في البيان المدمج هي المكان الذي يبحث فيه
"متجر Google Play" ونظام التشغيل Android لتحديد تطبيقك.
تغيير مساحة الاسم للاختبار
مساحة الاسم التلقائية للمجموعة المصدر androidTest
وtest
هي
مساحة الاسم الرئيسية، مع إضافة .test
في النهاية. على سبيل المثال، إذا كانت قيمة سمة
namespace
في ملف build.gradle
هي
com.example.myapp
،
يتم ضبط مساحة الاسماء للاختبار تلقائيًا على
com.example.myapp.test
.
لتغيير مساحة الاسم للاختبار، استخدِم السمة
testNamespace
، كما هو موضّح في مقتطف الرمز التالي:
Kotlin
android { namespace = "com.example.myapp" testNamespace = "com.example.mytestapp" ... }
رائع
android { namespace "com.example.myapp" testNamespace "com.example.mytestapp" ... }
تحذير: لا تضبط testNamespace
و
namespace
على القيمة نفسها، وإلا ستحصل على تعارضات في مساحة الاسم.
لمعرفة مزيد من المعلومات عن الاختبار، يُرجى الاطّلاع على مقالة اختبار التطبيقات على Android.