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

توضّح هذه الصفحة إعدادات التطبيق المفيدة في ملف 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"، يتم تلقائيًا تخصيص اسم الحزمة التي اخترتها لـ applicationId أثناء عملية الإعداد. يمكنك من الناحية الفنية التبديل بين السمتَين بشكل مستقلّ من حين لآخر، ولكن لا يُنصح بذلك.

ننصحك بتنفيذ الإجراءات التالية عند إعداد رقم تعريف التطبيق:

  • حافظ على رقم تعريف التطبيق نفسه مثل مساحة الاسم. يمكن أن يكون التمييز بين الخاصيتَين مربكًا بعض الشيء، ولكن إذا احتفظت به كما هو، فلا داعي للقلق.
  • لا تغيِّر معرّف التطبيق بعد نشر تطبيقك. فإذا غيَّرته، سيتعامل "متجر 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 و Gradle applicationId، تنسخ أدوات الإصدار معرّف التطبيق إلى ملف البيان النهائي لتطبيقك في نهاية الإصدار. لذلك، إذا كنت تفحص ملف 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.