ضبط مدة التسليم

تتيح لك وحدات الميزات فصل ميزات وموارد معينة عن الوحدة الأساسية لتطبيقك وتضمينها في حِزمة التطبيق. يمكنك بعد ذلك تخصيص خيارات التسليم للتحكّم في وقت وكيفية تنزيل ميزات تطبيقك على الأجهزة التي تعمل بنظام التشغيل Android 5.0 (المستوى 21 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

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

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

يصف هذا القسم كيفية إنشاء وحدة ميزة للتسليم في وقت التثبيت. قبل البدء، احرص على استخدام استوديو Android 3.5 أو إصدار أحدث ومكوّن Android Gradle الإضافي الإصدار 3.5.0 أو الإصدارات الأحدث.

ضبط وحدة جديدة لإرسال وقت التثبيت

أسهل طريقة لإنشاء وحدة ميزات جديدة هي استخدام Android Studio 3.5 أو الإصدارات الأحدث. ولأنّ وحدات الميزات تعتمد بشكل أساسي على وحدة التطبيق الأساسية، لا يمكنك إضافتها إلا إلى مشاريع التطبيق الحالية.

لإضافة وحدة ميزات إلى مشروع تطبيقك باستخدام "استوديو Android"، اتّبِع الخطوات التالية:

  1. افتح مشروع تطبيقك في بيئة التطوير المتكاملة (IDE)، إذا لم يسبق لك إجراء ذلك.
  2. حدد ملف > جديد > وحدة جديدة من شريط القوائم.
  3. في مربّع الحوار إنشاء وحدة جديدة، اختَر وحدة الميزات الديناميكية، ثمّ انقر على التالي.
  4. في قسم إعداد الوحدة الجديدة، أكمل ما يلي:
    1. اختَر وحدة التطبيق الأساسية لمشروع تطبيقك من القائمة المنسدلة.
    2. حدِّد اسم الوحدة. ويستخدم IDE هذا الاسم لتحديد الوحدة باعتبارها مشروع Gradle الفرعي في ملف إعدادات Gradle. عند إنشاء حِزمة تطبيقك، يستخدم Gradle العنصر الأخير من اسم المشروع الفرعي لإدخال سمة <manifest split> في بيان وحدة الميزات.
    3. حدِّد اسم حزمة الوحدة. وفقًا للإعدادات التلقائية، يقترح "استوديو Android" اسم حزمة يجمع اسم الحزمة الجذر للوحدة الأساسية واسم الوحدة الذي حدّدته في الخطوة السابقة.
    4. اختر الحدّ الأدنى لمستوى واجهة برمجة التطبيقات الذي تريد أن توفّره الوحدة. ويجب أن تتطابق هذه القيمة مع قيمة الوحدة الأساسية.
  5. انقر على التالي.
  6. في قسم خيارات تنزيل الوحدة، أكمل ما يلي:

    1. حدِّد عنوان الوحدة باستخدام ما يصل إلى 50 حرفًا. يجب أن تتضمن الوحدة الأساسية لتطبيقك عنوان الوحدة على أنه مورد سلسلة يمكنك ترجمته. عند إنشاء الوحدة باستخدام Android Studio، يضيف بيئة التطوير المتكاملة (IDE) مورد السلسلة إلى الوحدة الأساسية من أجلك وتُدخل الإدخال التالي في بيان وحدة الميزة:

      <dist:module
          ...
          dist:title="@string/feature_title">
      </dist:module>
      
    2. في القائمة المنسدلة ضمن تضمين وقت التثبيت، اختَر تضمين وحدة في وقت التثبيت. يتم إدراج ما يلي في ملف البيان في ملف Android Studio ليعكس اختيارك:

      <dist:module ... >
        <dist:delivery>
            <dist:install-time />
        </dist:delivery>
      </dist:module>
      

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

    3. ضع علامة في المربّع بجانب Fusing إذا أردت إتاحة هذه الوحدة على الأجهزة التي تعمل بالإصدار Android 4.4 (المستوى 20 لواجهة برمجة التطبيقات) والإصدارات الأقدم وتضمينها في حِزم APK المتعددة. وهذا يعني أنه يمكنك حذفه من الأجهزة التي لا تتيح تنزيل وتثبيت حِزم APK المجزّأة. يدرج Android Studio ما يلي في بيان الوحدة ليعكس اختيارك:

      <dist:module ...>
          <dist:fusing dist:include="true | false" />
      </dist:module>
      
  7. انقر على إنهاء.

بعد انتهاء "استوديو Android" من إنشاء الوحدة، افحص محتواها بنفسك من جزء المشروع (اختَر عرض > أداة Windows > المشروع من شريط القوائم). يجب أن تكون الكود والموارد والتنظيم الافتراضي مشابهة لتلك الخاصة بوحدة التطبيق القياسية.

جعل وحدة وقت التثبيت قابلة للإزالة

قد يكون من المفيد إنشاء وحدات ميزات للتسليم في وقت التثبيت مع خيار إلغاء تثبيتها لاحقًا إذا لم تعد مطلوبة. على سبيل المثال، لتقليل الحجم المثبَّت لتطبيقك، يمكنك تقسيم المحتوى المطلوب للتدريب أو الإعداد إلى وحدات، ثم إلغاء تثبيت وحدة الميزات باستخدام واجهة Play Core API بعد إعداد المستخدم لاستخدام التطبيق.

بشكل تلقائي، لا يمكن إزالة وحدات وقت التثبيت. لوضع علامة على وحدة كقابلة للإزالة والسماح بإلغاء تثبيتها، أضِف العلامة removable واضبط قيمتها على true:

<dist:module ... >
  <dist:delivery>
      <dist:install-time>
          <dist:removable dist:value="true"/>
      </dist:install-time>
  </dist:delivery>
</dist:module>