إعداد المكتبة للنشر

تصف هذه الصفحة الخصائص والخيارات اللازمة لإعداد مشروع مكتبة Android للنشر باستخدام المكوّن الإضافي لنظام Gradle المتوافق مع Android (AGP). حتى في حال إعداد بعض هذه الخصائص في بداية إنشاء ملف ، راجع الإرشادات التالية لتحسين الإعدادات.

اختيار مساحة اسم

يجب أن تكشف مكتبات Android عن مساحة اسم لتتمكّن من إنشاء مساحة اسم فريدة R عند تجميع مواردها. يجب أن تتطابق مساحة الاسم هذه ارتباطًا وثيقًا حزمة الفئة الجذر في المكتبة لتجنُّب حدوث أي التباس عند استيراد المستخدمين لحزمة صفَّين من المكتبة وصفّها R.

بدءًا من AGP 7.0، يمكنك تعيين مساحة الاسم في ملف build.gradle للتطبيق، كما هو موضّح في مثال الرمز التالي:

Groovy

android {
  namespace = 'com.example.library'
}

Kotlin

android {
  namespace = "com.example.library"
}

مساحة الاسم هي خاصية للمكتبة يواجهها المطوّر. لا بهوية التطبيق، والتي يتم تعيينها باستخدام applicationId الموقع.

في الإصدارات السابقة من AGP، تُستخدم كلتا السمتين applicationId (بالنسبة إلى التطبيق) والسمة namespace (لمكتبة) باستخدام السمة package في البيان مما أدى إلى الالتباس.

اختيار قيمة minSdkVersion

اختيار minSdkVersion من أجل ومكتبتك هي جانب مهم في نشر المكتبة. تشير رسالة الأشكال البيانية يجب أن يعكس minSdkVersion الحد الأدنى من إصدار Android الذي يمكن لرمزك استخدامه. والدعم.

يُرجى الانتباه إلى الاعتبارات التالية عند اختيار minSdkVersion:

  • يؤدي اختيار قيمة minSdkVersion منخفضة عمومًا إلى توزيع مكتبتك

    لا يتم تنفيذ رمز المكتبة بشكل عام ما لم يتم تنفيذ يسميها بشكل صريح. لا يزال بإمكان التطبيق تشغيل على إصدار من Android أقل مما تتطلبه التبعية للمكتبة - إذا لم تكن المكتبة ضرورية لوظائف التطبيق الأساسية، من خلال إجراء عمليات فحص في وقت التشغيل قبل الاتصال المكتبة. لذلك، اضبط minSdkVersion في مكتبتك على مستوى منخفض بما يكفي ويمكن تضمينه في التطبيقات، واستدعاؤه قدر الإمكان للمساعدة في الوصول إلى مزيد من المستخدمين المستخدمين.

  • قد يؤدي اختيار قيمة minSdkVersion عالية إلى منع التطبيقات من تضمين المكتبة

    دمج البيان، وهو خطوة في AGP تدمج ملفات البيان التطبيق ومن تبعياته، يفرض عدم يكون لدى التبعيات minSdkVersion أعلى من التطبيق.

  • قد يؤدي اختيار قيمة minSdkVersion عالية إلى مطالبة مطوّري التطبيقات بإيقافها. بيان عمليات التحقّق من الأمان المتعلقة بعمليات الدمج، ما يتسبّب في حدوث مشاكل لاحقًا في عملية التصميم.

    لأنّ دمج البيان يمنع مشاريع التطبيقات من تضمين المكتبات التي تتضمّن minSdkVersion أعلى من التطبيق نفسه، يحتاج مطوِّرو التطبيقات إلى إيقاف عمليات التحقق من الأمان لعملية دمج البيان للحد من الأخطاء. ومع ذلك، فإن هذا يخاطر بعدم التوافق الحقيقي.

  • قد يكون اختيار قيمة minSdkVersion عالية أمرًا ضروريًا في حالات خاصة حيث يتضمن بيان المكتبة مستقبِل البث أو أي آلية أخرى عن طريق التي يتم تشغيل رمزها تلقائيًا

    في هذه الحالات، يضمن اختيار قيمة minSdkVersion عالية إمكانية تشغيل الرمز. وبدلاً من ذلك، يمكنك إيقاف السلوك التلقائي ليتمكّن التطبيق من تفعيل إلى تنفيذ المكتبة بعد إجراء عمليات التحقق الصحيحة.

للسماح بالتضمين في التطبيقات، استخدم التعليق التوضيحي RequiresApi في لإخبار المتصلين بأنها بحاجة إلى إجراء عمليات تحقق في وقت التشغيل. جهاز Android تستخدم أداة Lint معلومات RequiresApi لإجراء عمليات الفحص. لمزيد من المراجع حول استخدام التعليقات التوضيحية لتحسين رمز واجهة برمجة التطبيقات وواجهات برمجة التطبيقات، راجع تحسين الرموز الفحص باستخدام التعليقات التوضيحية.

إعداد البيانات الوصفية في AAR

تتوفّر مكتبة Android في حزم ملف أرشيف Android (AAR). تتألف البيانات الوصفية AAR من خصائص تساعد مكتبات استهلاك AGP. إذا تم استهلاك مكتبتك من قِبل برنامج غير متوافق وإعداد البيانات الوصفية AAR، تظهر للمستخدمين رسالة خطأ رسالة لمساعدتهم في حل المشكلة.

اختيار قيمة minCompileSdk

بدءًا من الإصدار 4.1، يدعم AGP minCompileSdk يشير هذا إلى الحد الأدنى compileSdk التي يمكن للمشروعات المستهلكة استخدامها. إذا كانت مكتبتك تحتوي على إدخالات بيان أو تستخدم سمات حديثة للنظام الأساسي، عليك اضبط هذه القيمة.

يمكن ضبط قيمة minCompileSdk في defaultConfig{}، وحدات productFlavors{} وbuildTypes{} في build.gradle على مستوى الوحدة الملف:

Groovy

android {
  defaultConfig {
    aarMetadata {
      minCompileSdk = 29
    }
  }
  productFlavors {
    foo {
      ...
      aarMetadata {
        minCompileSdk = 30
      }
    }
  }
}

Kotlin

android {
  defaultConfig {
    aarMetadata {
      minCompileSdk = 29
    }
  }
  productFlavors {
    register("foo") {
      ...
      aarMetadata {
        minCompileSdk = 30
      }
    }
  }
}

إذا ضبطت minCompileSdk في أماكن متعددة، ستمنح Gradle الأولوية للإعدادات. والمواقع على النحو التالي أثناء عملية الإنشاء:

  1. buildTypes{}

  2. productFlavors{}

  3. defaultConfig{}

في المثال السابق، حيث يتم تعريف minCompileSdk في كليهما تم منح الأولوية لـ "defaultConfig{}" و"productFlavors{}" و"productFlavors{}". وminCompileSdk وهي مضبوطة على 30.

لمعرفة المزيد حول كيفية الاستفادة من Gradle تعطي الأولوية للإعدادات عند الجمع بين الرمز البرمجي والموارد. يُرجى مراجعة القسم إنشاء باستخدام المصدر مجموعات.

تفعيل تركيبات الاختبار

تجهيزات الاختبار تُستخدم عادةً لإعداد الرمز البرمجي الذي يتمّ اختباره أو تسهيل إجراء اختبارات المكون. بدءًا من الإصدار 7.1، أصبح بإمكان AGP إنشاء تجهيزات اختبار للمكتبة بالإضافة إلى مشروعات التطبيقات والميزات الديناميكية.

يجب إنشاء مكتبة ليستعرضها الآخرون عند نشرها. وتجهيزات واجهة برمجة التطبيقات. يمكن تشغيل تركيبات الاختبار في مستوى الوحدة ملف build.gradle:

Groovy

android {
  testFixtures {
    enable = true
  }
}

Kotlin

android {
  testFixtures {
    enable = true
  }
}

عند تشغيل تركيبات الاختبار، تُنشئ أداة Gradle تلقائيًا تم ضبط مصدر واحد (src/testFixtures) على المكان الذي يمكنك من خلاله كتابة تجهيزات الاختبار.

لمزيد من المعلومات، ارجع إلى وثائق Gradle حول استخدام تركيبات الاختبار.