تتيح لك وحدات الميزات فصل ميزات وموارد معيّنة عن الوحدة الأساسية لتطبيقك وتضمينها في حزمة تطبيقك. يمكنك بعد ذلك تخصيص خيارات التسليم للتحكّم في وقت وكيفية تنزيل ميزات تطبيقك على الأجهزة التي تعمل بالإصدار 5.0 من نظام التشغيل Android (المستوى 21 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.
يُرجى العِلم أنّ هذا النوع من التقسيم يتطلّب المزيد من الجهد وربما إعادة هيكلة الرمز الحالي لتطبيقك، لذا عليك التفكير بعناية في ميزات تطبيقك التي ستستفيد أكثر من إتاحتها للمستخدمين عند الطلب.
إذا أردت تقسيم ميزات التطبيق تدريجيًا بمرور الوقت بدون تغيير سلوك التطبيق أو تخصيص خيارات العرض المتقدّمة، يمكنك إجراء ذلك من خلال إنشاء وحدات ميزات تم ضبطها للعرض في وقت التثبيت. وهذا يعني أنّه يمكنك تقسيم ميزة إلى وحدة ميزات، ولكن لا يمكنك تفعيل الخيارات المتقدّمة لتكون الميزة متاحة عندما يثبّت المستخدم تطبيقك.
بالإضافة إلى ذلك، يمكن إلغاء تثبيت وحدات الميزات التي تم ضبطها للعرض في وقت التثبيت إذا لم تعد مطلوبة. لذلك، يجب إعدادها كأجهزة قابلة للإزالة.
يوضّح هذا القسم كيفية إنشاء وحدة ميزات للتسليم عند التثبيت. قبل البدء، تأكَّد من استخدام الإصدار 3.5 من "استوديو Android" أو إصدار أحدث والإصدار 3.5.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android أو إصدار أحدث.
ضبط وحدة جديدة للتسليم أثناء التثبيت
أسهل طريقة لإنشاء وحدة ميزات جديدة هي استخدام الإصدار 3.5 من "استوديو Android" أو إصدار أحدث. بما أنّ وحدات الميزات تعتمد بطبيعتها على وحدة التطبيق الأساسية، يمكنك إضافتها فقط إلى مشاريع التطبيقات الحالية.
لإضافة وحدة ميزات إلى مشروع تطبيقك باستخدام "استوديو Android"، اتّبِع الخطوات التالية:
- افتح مشروع تطبيقك في بيئة التطوير المتكاملة (IDE)، إذا لم يسبق لك إجراء ذلك.
- اختَر ملف (File) > جديد (New) > وحدة جديدة (New Module) من شريط القوائم.
- في مربّع الحوار إنشاء وحدة جديدة، اختَر وحدة الميزات الديناميكية وانقر على التالي.
- في قسم ضبط الوحدة الجديدة، أكمِل ما يلي:
- اختَر وحدة التطبيق الأساسية لمشروع تطبيقك من القائمة المنسدلة.
- حدِّد اسم الوحدة. تستخدم بيئة التطوير المتكاملة هذا الاسم لتحديد الوحدة كمشروع فرعي في Gradle في ملف إعدادات Gradle. عند إنشاء حِزمة تطبيقك، يستخدم Gradle العنصر الأخير من اسم المشروع الفرعي لإدخال السمة
<manifest split>في ملف بيان وحدة الميزات. - حدِّد اسم حزمة الوحدة. يقترح استوديو Android تلقائيًا اسم حزمة يجمع بين اسم الحزمة الجذر للوحدة الأساسية واسم الوحدة الذي حدّدته في الخطوة السابقة.
- اختَر الحدّ الأدنى لمستوى واجهة برمجة التطبيقات الذي تريد أن تتوافق معه الوحدة. يجب أن تتطابق هذه القيمة مع قيمة الوحدة الأساسية.
- انقر على التالي.
في قسم خيارات تنزيل الوحدات، أكمِل ما يلي:
حدِّد عنوان الوحدة باستخدام ما يصل إلى 50 حرفًا. يجب أن تتضمّن الوحدة الأساسية في تطبيقك عنوان الوحدة على شكل مصدر السلاسل النصية يمكنك ترجمته. عند إنشاء الوحدة باستخدام "استوديو Android"، تضيف بيئة التطوير المتكاملة (IDE) مصدر السلاسل النصية إلى الوحدة الأساسية وتُدخل الإدخال التالي في بيان وحدة الميزات:
<dist:module ... dist:title="@string/feature_title"> </dist:module>ملاحظة: في حال تفعيل ميزة تقليص الموارد، مثلاً لبُنى الإصدارات، قد يزيل برنامج التقليص مورد السلاسل النصية لعنوان الوحدة إذا لم يشِر إليه الرمز البرمجي في الوحدة الأساسية. للتأكّد من بقاء مصدر السلاسل النصية في مخرجات الإصدار، يجب تضمين المورد في ملف مخصّص للاحتفاظ بالموارد.
في القائمة المنسدلة ضمن التضمين في وقت التثبيت، اختَر تضمين الوحدة في وقت التثبيت. يُدخل "استوديو Android" ما يلي في بيان الوحدة ليعكس اختيارك:
<dist:module ... > <dist:delivery> <dist:install-time /> </dist:delivery> </dist:module>إذا أردت التعرّف على كيفية إنشاء وحدة ميزات يمكنك تنزيلها بعد تثبيت التطبيق، يُرجى الاطّلاع على ضبط ميزة العرض عند الطلب.
ضَع علامة في المربّع بجانب دمج إذا أردت أن تكون هذه الوحدة متاحة للأجهزة التي تعمل بنظام التشغيل Android 4.4 (مستوى واجهة برمجة التطبيقات 20) والإصدارات الأقدم والمضمّنة في حِزم APK المتعددة. وهذا يعني أنّه يمكنك حذفه من الأجهزة التي لا تتيح تنزيل حِزم APK المجزّأة وتثبيتها. يُدخل "استوديو Android" ما يلي في ملف بيان الوحدة ليعكس اختيارك:
<dist:module ...> <dist:fusing dist:include="true | false" /> </dist:module>
انقر على إنهاء.
بعد أن ينتهي "استوديو Android" من إنشاء الوحدة، يمكنك فحص محتواها بنفسك من لوحة المشروع (Project) (انقر على عرض (View) > نوافذ الأدوات (Tool Windows) > المشروع (Project) من شريط القوائم). يجب أن يكون الرمز والموارد والتنظيم التلقائي مشابهًا لتلك الموجودة في وحدة التطبيق العادية.
كيفية جعل وحدة قابلة للإزالة عند التثبيت
قد يكون من المفيد إنشاء وحدات ميزات للتسليم أثناء التثبيت مع إتاحة خيار إلغاء تثبيتها لاحقًا إذا لم تعد مطلوبة. على سبيل المثال، لتقليل حجم تثبيت تطبيقك، يمكنك تقسيم المحتوى المطلوب للتدريب أو الإعداد إلى وحدات، ثم إلغاء تثبيت وحدة الميزات باستخدام مكتبة Play الأساسية بعد إعداد المستخدم لاستخدام تطبيقك.
لا يمكن إزالة الوحدات التي يتم تثبيتها مع التطبيق تلقائيًا. لوضع علامة على وحدة على أنّها قابلة للإزالة
والسماح بإلغاء تثبيتها، أضِف العلامة removable واضبط قيمتها على
true:
<dist:module ... >
<dist:delivery>
<dist:install-time>
<dist:removable dist:value="true"/>
</dist:install-time>
</dist:delivery>
</dist:module>