ضبط وحدة التطبيق

توضِّح هذه الصفحة إعدادات التطبيق المفيدة في 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.