يستخدم نموذج عرض التطبيقات في Google Play مجموعة حزمات تطبيق Android لإنشاء وعرض حِزم APK محسَّنة تتوافق مع إعدادات جهاز كل مستخدم، ما يتيح للمستخدمين تنزيل الرموز البرمجية والموارد التي يحتاجون إليها فقط لتشغيل تطبيقك.
تستخدم ميزة "عرض الميزات في Play" الإمكانات المتقدّمة لحِزم التطبيقات، ما يتيح عرض ميزات معيّنة في تطبيقك بشكل مشروط أو تنزيلها عند الطلب. لإجراء ذلك، عليك أولاً فصل هذه الميزات عن تطبيقك الأساسي إلى وحدات ميزات.
إعدادات تصميم وحدة الميزات
عند إنشاء وحدة ميزات جديدة باستخدام "استوديو Android"، تطبِّق بيئة التطوير المتكاملة (IDE) المكوّن الإضافي التالي لـ Gradle على ملف build.gradle الخاص بالوحدة.
// The following applies the dynamic-feature plugin to your feature module.
// The plugin includes the Gradle tasks and properties required to configure and build
// an app bundle that includes your feature module.
plugins {
id 'com.android.dynamic-feature'
}
تتوفّر أيضًا العديد من السمات المتاحة للمكوّن الإضافي العادي للتطبيق لوحدة الميزات. توضّح الأقسام التالية السمات التي يجب تضمينها أو عدم تضمينها في إعدادات التصميم الخاصة بوحدة الميزات.
ما يجب عدم تضمينه في إعدادات تصميم وحدة الميزات
بما أنّ كل وحدة ميزات تعتمد على الوحدة الأساسية، فإنّها تكتسب أيضًا إعدادات معيّنة. لذا، يجب حذف ما يلي في ملف build.gradle الخاص بوحدة الميزات:
- إعدادات التحقق: يتم التحقق من حِزم التطبيقات باستخدام إعدادات التحقق التي تحدّدها في الوحدة الأساسية.
- السمة
minifyEnabled: يمكنك تفعيل تخفيض حجم الرموز لمشروع تطبيقك بالكامل من إعدادات التصميم للوحدة الأساسية فقط. لذلك، يجب حذف هذه السمة من وحدات الميزات. ومع ذلك، يمكنك تحديد قواعد ProGuard إضافية لكل وحدة ميزات. -
versionCodeوversionName: عند إنشاء حِزمة تطبيقك، يستخدم Gradle معلومات إصدار التطبيق التي توفّرها الوحدة الأساسية. يجب حذف هذه السمات من ملفbuild.gradleالخاص بوحدة الميزات.
إنشاء علاقة بالوحدة الأساسية
عندما ينشئ "استوديو Android" وحدة الميزات، يجعلها مرئية للوحدة الأساسية من خلال إضافة السمة android.dynamicFeatures إلى ملف build.gradle الخاص بالوحدة الأساسية، كما هو موضّح أدناه:
// In the base module’s build.gradle file.
android {
...
// Specifies feature modules that have a dependency on
// this base module.
dynamicFeatures = [":dynamic_feature", ":dynamic_feature2"]
}
بالإضافة إلى ذلك، يتضمّن "استوديو Android" الوحدة الأساسية كأحد تبعيات وحدة الميزات، كما هو موضّح أدناه:
// In the feature module’s build.gradle file:
...
dependencies {
...
// Declares a dependency on the base module, ':app'.
implementation project(':app')
}
تحديد قواعد ProGuard إضافية
على الرغم من أنّ إعدادات التصميم للوحدة الأساسية فقط هي التي تتيح تقليص حجم الرموز لمشروع تطبيقك، يمكنك تقديم قواعد ProGuard مخصّصة مع كل وحدة ميزات باستخدام السمة proguardFiles، كما هو موضّح أدناه.
android.buildTypes {
release {
// You must use the following property to specify additional ProGuard
// rules for feature modules.
proguardFiles 'proguard-rules-dynamic-features.pro'
}
}
يُرجى العِلم أنّه يتم دمج قواعد ProGuard هذه مع القواعد من الوحدات الأخرى (بما في ذلك الوحدة الأساسية) في وقت الإنشاء. لذلك، على الرغم من أنّ كل وحدة ميزات قد تحدّد مجموعة جديدة من القواعد، فإنّ هذه القواعد تنطبق على جميع الوحدات في مشروع التطبيق.
نشر تطبيقك
أثناء تطوير تطبيقك مع إتاحة وحدات الميزات، يمكنك نشر تطبيقك على جهاز متصل كالمعتاد من خلال اختيار تشغيل > تشغيل من شريط القوائم (أو من خلال النقر على تشغيل
في شريط الأدوات).
إذا كان مشروع تطبيقك يتضمّن وحدة ميزات واحدة أو أكثر، يمكنك اختيار الميزات التي تريد تضمينها عند نشر تطبيقك من خلال تعديل إعدادات التشغيل/تصحيح الأخطاء الحالية على النحو التالي:
- اختَر تشغيل > تعديل الإعدادات من شريط القوائم.
- من اللوحة اليمنى في مربّع حوار إعدادات التشغيل/تصحيح الأخطاء، اختَر إعدادات تطبيق Android المطلوبة.
- ضِمن الميزات الديناميكية التي سيتم نشرها في علامة التبويب الإعدادات العامة، ضَع علامة في المربّع بجانب كل وحدة ميزات تريد تضمينها عند نشر تطبيقك.
- انقر على موافق.
لا ينشر استوديو Android تطبيقك تلقائيًا باستخدام حِزم التطبيقات لنشر تطبيقك، بل تنشئ بيئة التطوير المتكاملة (IDE) حِزم APK وتثبّتها على جهازك، وتكون هذه الحِزم محسّنة لسرعة النشر بدلاً من حجم حزمة APK. لضبط استوديو Android لإنشاء حِزم APK وتجارب فورية للتطبيق من حزمة تطبيق ونشرها بدلاً من ذلك، عليك تعديل إعدادات التشغيل/تصحيح الأخطاء.
استخدام وحدات الميزات للتسليم المخصّص
تتمثل إحدى المزايا الفريدة لوحدات الميزات في إمكانية تخصيص كيفية تنزيل الميزات المختلفة لتطبيقك ووقت تنزيلها على الأجهزة التي تعمل بالإصدار 5.0 من نظام التشغيل Android (المستوى 21 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث. على سبيل المثال، لتقليل حجم التنزيل الأولي لتطبيقك، يمكنك ضبط ميزات معيّنة ليتم تنزيلها حسب الحاجة أو فقط على الأجهزة التي تتوافق مع إمكانات معيّنة، مثل إمكانية التقاط الصور أو التوافق مع ميزات الواقع المعزّز.
على الرغم من أنّك تحصل على عمليات تنزيل محسّنة للغاية بشكل تلقائي عند تحميل تطبيقك كحزمة تطبيق، فإنّ خيارات عرض الميزات الأكثر تقدّمًا والقابلة للتخصيص تتطلّب ضبطًا إضافيًا وتقسيمًا لميزات تطبيقك إلى وحدات باستخدام وحدات الميزات. وهذا يعني أنّ وحدات الميزات توفّر اللبنات الأساسية لإنشاء ميزات قابلة للتعديل يمكنك ضبطها ليتم تنزيل كل منها حسب الحاجة.
لنفترض أنّ لديك تطبيقًا يتيح للمستخدمين شراء السلع وبيعها في سوق على الإنترنت. يمكنك تقسيم كل وظيفة من الوظائف التالية في التطبيق إلى وحدات ميزات منفصلة:
- تسجيل الدخول إلى الحساب وإنشاؤه
- تصفُّح السوق
- عرض سلعة للبيع
- معالجة الدفعات
يوضّح الجدول أدناه خيارات التسليم المختلفة التي تتيحها وحدات الميزات، وكيفية استخدامها لتحسين حجم عملية التنزيل الأوّلي لنموذج تطبيق السوق.
| خيار التسليم | السلوك | مثال على حالة الاستخدام | الخطوات الأولى |
|---|---|---|---|
| العرض في وقت التثبيت | يتم تلقائيًا تنزيل وحدات الميزات التي لا تضبط أيًا من خيارات العرض الموضّحة أعلاه عند تثبيت التطبيق. هذا السلوك مهم لأنّه يتيح لك اعتماد خيارات التسليم المتقدّمة تدريجيًا. على سبيل المثال، يمكنك الاستفادة من تقسيم ميزات تطبيقك إلى وحدات وتفعيل ميزة العرض عند الطلب فقط بعد تنفيذ عمليات التنزيل عند الطلب بالكامل باستخدام مكتبة "عرض الميزات في Play".
بالإضافة إلى ذلك، يمكن لتطبيقك طلب إلغاء تثبيت الميزات في وقت لاحق. لذلك، إذا كنت بحاجة إلى ميزات معيّنة عند تثبيت التطبيق، ولكن ليس بعد ذلك، يمكنك تقليل حجم التثبيت من خلال طلب إزالة الميزة من الجهاز. |
إذا كان التطبيق يتضمّن أنشطة تدريبية معيّنة، مثل دليل تفاعلي
حول كيفية شراء السلع وبيعها في السوق، يمكنك تضمين هذه
الميزة عند تثبيت التطبيق تلقائيًا.
ومع ذلك، لتقليل حجم التطبيق المثبَّت، يمكن للتطبيق طلب حذف الميزة بعد أن يكمل المستخدم التدريب. |
قسِّم تطبيقك إلى وحدات باستخدام وحدات الميزات التي لا تضبط أي خيارات عرض متقدّمة.
لمعرفة كيفية تقليل حجم تطبيقك المثبَّت من خلال إزالة بعض وحدات الميزات التي قد لا يحتاج إليها المستخدم، يُرجى الاطّلاع على مقالة إدارة الوحدات المثبَّتة. |
| التسليم عند الطلب | يسمح هذا الإذن لتطبيقك بطلب وحدات الميزات وتنزيلها حسب الحاجة. | إذا كان% 20 فقط من مستخدمي تطبيق السوق ينشرون سلعًا للبيع، فإنّ الاستراتيجية الجيدة لتقليل حجم التنزيل الأولي لغالبية المستخدمين هي إتاحة وظيفة التقاط الصور، بما في ذلك وصف السلعة وعرضها للبيع، كتنزيل عند الطلب. أي أنّه يمكنك ضبط وحدة الميزات لوظيفة البيع في التطبيق بحيث يتم تنزيلها فقط عندما يُبدي المستخدم اهتمامًا بعرض السلع للبيع في السوق.
بالإضافة إلى ذلك، إذا توقّف المستخدم عن بيع السلع بعد فترة زمنية معيّنة، يمكن للتطبيق تقليل حجمه المثبَّت من خلال طلب إلغاء تثبيت الميزة. |
أنشئ وحدة ميزات واضبط العرض عند الطلب. ويمكن لتطبيقك بعد ذلك استخدام مكتبة عرض الميزات في Play لطلب تنزيل الوحدة عند الحاجة. |
| التسليم المشروط | تتيح لك تحديد متطلبات معيّنة لأجهزة المستخدمين، مثل ميزات الأجهزة واللغة والحد الأدنى لمستوى واجهة برمجة التطبيقات، وذلك لتحديد ما إذا كان سيتم تنزيل ميزة مقسَّمة إلى وحدات عند تثبيت التطبيق. | إذا كان تطبيق السوق متاحًا على مستوى العالم، قد تحتاج إلى إتاحة طرق الدفع الشائعة في مناطق أو أماكن معيّنة فقط. لتقليل حجم التطبيق عند تنزيله لأول مرة، يمكنك إنشاء وحدات ميزات منفصلة لمعالجة أنواع معيّنة من طرق الدفع وتثبيتها بشكل مشروط على جهاز المستخدم استنادًا إلى لغته المسجَّلة. | أنشئ وحدة ميزات واضبط العرض المشروط. |
| التسليم الفوري | تتيح ميزة تطبيقات Google Play الفورية للمستخدمين التفاعل مع تطبيقك بدون الحاجة إلى تثبيته على أجهزتهم. بدلاً من ذلك، يمكنهم تجربة تطبيقك من خلال الزر "تجربة الآن" في "متجر Google Play" أو عنوان URL الذي تنشئه. تسهّل عليك هذه الطريقة في تقديم المحتوى زيادة التفاعل مع تطبيقك.
من خلال ميزة "التسليم الفوري"، يمكنك استخدام تقنية "تطبيقات Google Play الفورية" للسماح للمستخدمين بتجربة ميزات معيّنة في تطبيقك على الفور بدون تثبيته. |
لنفترض أنّ لديك لعبة تتضمّن المستويات القليلة الأولى من اللعبة في وحدة ميزات خفيفة. يمكنك تفعيل ميزة التطبيقات الفورية في هذه الوحدة ليتمكّن المستخدمون من تجربة اللعبة على الفور من خلال رابط عنوان URL أو زر "التجربة الآن" بدون تثبيت التطبيق. | أنشئ وحدة ميزات واضبط إعدادات العرض الفوري. ويمكن لتطبيقك بعد ذلك استخدام
مكتبة عرض الميزات في Play لطلب
تنزيل الوحدة عند الحاجة.
يُرجى العِلم أنّ تقسيم ميزات تطبيقك إلى وحدات باستخدام وحدات الميزات هو الخطوة الأولى فقط. لإتاحة ميزة "تطبيقات Google Play الفورية"، يجب أن يستوفي حجم تنزيل الوحدة الأساسية لتطبيقك وميزة معيّنة تم تفعيل ميزة التطبيقات الفورية فيها قيودًا صارمة على الحجم. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تفعيل التجارب الفورية من خلال تقليل حجم التطبيق أو اللعبة. |
إنشاء معرّف موارد منتظم (URI) لمورد
إذا أردت الوصول إلى مورد مخزَّن في وحدة ميزات باستخدام معرّف موارد منتظم (URI)، إليك كيفية إنشاء معرّف موارد منتظم (URI) لمورد وحدة الميزات باستخدام Uri.Builder():
Kotlin
val uri = Uri.Builder() .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) .authority(context.getPackageName()) // Look up the resources in the application with its splits loaded .appendPath(resources.getResourceTypeName(resId)) .appendPath(String.format("%s:%s", resources.getResourcePackageName(resId), // Look up the dynamic resource in the split namespace. resources.getResourceEntryName(resId) )) .build()
Java
String uri = Uri.Builder() .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) .authority(context.getPackageName()) // Look up the resources in the application with its splits loaded .appendPath(resources.getResourceTypeName(resId)) .appendPath(String.format("%s:%s", resources.getResourcePackageName(resId), // Look up the dynamic resource in the split namespace. resources.getResourceEntryName(resId) )) .build().toString();
يتم إنشاء كل جزء من مسار المورد في وقت التشغيل، ما يضمن إنشاء مساحة الاسم الصحيحة بعد تحميل حِزم APK المجزّأة.
كمثال على كيفية إنشاء معرّف الموارد المنتظم (URI)، لنفترض أنّ لديك تطبيقًا ووحدات ميزات بالأسماء التالية:
- اسم حزمة التطبيق:
com.example.my_app_package - اسم حزمة موارد الميزة:
com.example.my_app_package.my_dynamic_feature
إذا كان الرمز resId في مقتطف الرمز أعلاه يشير إلى مورد ملف أولي باسم
"my_video" في وحدة الميزات، سيؤدي الرمز Uri.Builder() أعلاه إلى
إخراج ما يلي:
android.resource://com.example.my_app_package/raw/com.example.my_app_package.my_dynamic_feature:my_video
ويمكن بعد ذلك استخدام معرّف الموارد المنتظم (URI) هذا من خلال تطبيقك للوصول إلى مورد وحدة الميزات.
للتحقّق من صحة المسارات في معرّف الموارد المنتظم (URI)، يمكنك استخدام أداة تحليل ملفات APK لفحص حزمة APK الخاصة بوحدة الميزات وتحديد اسم الحزمة:
اعتبارات بشأن وحدات الميزات
باستخدام وحدات الميزات، يمكنك تحسين سرعة الإنشاء والسرعة الهندسية وتخصيص تسليم ميزات تطبيقك على نطاق واسع لتقليل حجم تطبيقك. ومع ذلك، هناك بعض القيود والحالات الاستثنائية التي يجب وضعها في الاعتبار عند استخدام وحدات الميزات:
- قد يؤدي تثبيت 50 وحدة ميزات أو أكثر على جهاز واحد، من خلال العرض المشروط أو العرض عند الطلب، إلى حدوث مشاكل في الأداء. يتم تلقائيًا تضمين الوحدات التي يتم عرضها أثناء التثبيت، والتي لم يتم ضبطها على أنّها قابلة للإزالة، في الوحدة الأساسية، ويتم احتسابها كوحدة ميزات واحدة فقط على كل جهاز.
- يجب ألا يزيد عدد الوحدات التي تضبطها كقابلة للإزالة في التسليم عند التثبيت عن 10 وحدات. وإلا، قد يزيد وقت تنزيل تطبيقك وتثبيته.
- تتيح الأجهزة التي تعمل بنظام التشغيل Android 5.0 (مستوى واجهة برمجة التطبيقات 21) والإصدارات الأحدث فقط تنزيل الميزات وتثبيتها عند الطلب. لإتاحة الميزة لإصدارات Android السابقة، يمكنك تفعيل الدمج عند إنشاء وحدة ميزات.
- فعِّل SplitCompat، ليتمكّن تطبيقك من الوصول إلى وحدات الميزات التي تم تنزيلها والتي يتم عرضها عند الطلب.
- يجب ألا تحدّد وحدات الميزات أنشطة في ملف البيان الخاص بها مع ضبط السمة
android:exportedعلىtrue. ويرجع ذلك إلى عدم وجود ضمان بأنّ الجهاز قد نزّل وحدة الميزات عندما يحاول تطبيق آخر تشغيل النشاط. بالإضافة إلى ذلك، يجب أن يتأكّد تطبيقك من تنزيل الميزة قبل محاولة الوصول إلى الرمز البرمجي والموارد الخاصة بها. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إدارة الوحدات المثبَّتة. - بما أنّ ميزة "عرض الميزات في Play" تتطلّب منك نشر تطبيقك باستخدام حزمة تطبيق، يُرجى التأكّد من أنّك على عِلم بالمشاكل المعروفة المتعلّقة بحِزم التطبيقات.
مرجع بيان وحدة الميزات
عند إنشاء وحدة ميزات جديدة باستخدام "استوديو Android"، تتضمّن بيئة التطوير المتكاملة (IDE) معظم سمات البيان التي تتطلّبها الوحدة لتعمل كوحدة ميزات. بالإضافة إلى ذلك، يتم إدخال بعض السمات من خلال نظام الإنشاء في وقت التجميع، لذا لا تحتاج إلى تحديدها أو تعديلها بنفسك. يوضّح الجدول التالي سمات ملف البيان المهمة لوحدات الميزات.
| السمة | الوصف |
|---|---|
| <manifest | هذا مثال على مكوّن
<manifest>. |
| xmlns:dist="http://schemas.android.com/apk/distribution" | يحدّد مساحة اسم XML جديدة لـ dist:، وهي موضّحة بمزيد من التفصيل أدناه. |
| split="split_name" |
عندما ينشئ "استوديو Android" حِزمة تطبيقك، يتم تضمين هذه السمة لك. لذلك، يجب عدم تضمين هذه السمة أو تعديلها بنفسك.
يحدِّد اسم الوحدة التي يحدِّدها تطبيقك عند طلب وحدة عند الطلب باستخدام مكتبة عرض الميزات في Play. كيفية تحديد Gradle لقيمة هذه السمة: عند إنشاء وحدة ميزات باستخدام "استوديو Android"، تستخدم بيئة التطوير المتكاملة (IDE) تلقائيًا ما تحدّده على أنّه اسم الوحدة لتحديد الوحدة كمشروع فرعي في Gradle في ملف إعدادات Gradle.
عند إنشاء حزمة تطبيقك، يستخدم Gradle العنصر الأخير من مسار المشروع الفرعي لإدخال سمة ملف البيان هذه في ملف بيان الوحدة. على سبيل المثال، إذا أنشأت وحدة ميزات جديدة في دليل |
| android:isFeatureSplit="true | false"> |
عندما ينشئ "استوديو Android" حِزمة تطبيقك، يتم تضمين هذه السمة تلقائيًا. لذلك، يجب عدم تضمين هذه السمة أو تعديلها يدويًا.
يحدّد أنّ هذه الوحدة هي وحدة ميزات.
أما ملفات البيان في الوحدة الأساسية وحِزم APK الخاصة بالإعدادات، فتحذف هذه السمة أو تضبطها على |
| <dist:module | تحدِّد السمات التي تحدِّد كيفية حزم الوحدة وتوزيعها كملفات APK. |
| dist:instant="true | false" |
يحدِّد ما إذا كان يجب أن تكون الوحدة متاحة من خلال
تطبيقات Google Play الفورية
كتجربة فورية.
إذا كان تطبيقك يتضمّن وحدة ميزات واحدة أو أكثر تم تفعيل ميزة التطبيقات الفورية فيها، يجب أيضًا تفعيل ميزة التطبيقات الفورية في الوحدة الأساسية. عند استخدام الإصدار 3.5 من "استوديو Android" أو إصدار أحدث، تنفّذ بيئة التطوير المتكاملة (IDE) ذلك نيابةً عنك عند إنشاء وحدة ميزات تم تفعيل ميزة التطبيقات الفورية فيها. لا يمكنك ضبط عنصر XML هذا على |
| dist:title="@string/feature_name"> |
تحدّد هذه السمة عنوانًا للوحدة موجّهًا للمستخدمين. على سبيل المثال،
قد يعرض الجهاز هذا العنوان عندما يطلب تأكيد
التنزيل.
يجب تضمين مصدر السلاسل النصية لهذا العنوان
في ملف |
| <dist:fusing dist:include="true | false" /> |
تحدّد ما إذا كان سيتم تضمين الوحدة في حِزم APK المتعددة التي
تستهدف الأجهزة التي تعمل بنظام التشغيل Android 4.4 (المستوى 20 لواجهة برمجة التطبيقات) والإصدارات الأقدم.
بالإضافة إلى ذلك، عند
استخدام |
| <dist:delivery> | يتضمّن الخيارات التي تخصص تسليم الوحدة، كما هو موضّح أدناه. يُرجى العِلم أنّه يجب ضبط نوع واحد فقط من خيارات العرض المخصّصة هذه لكل وحدة ميزات. |
| <dist:install-time> |
تحدِّد هذه السمة أنّ الوحدة يجب أن تكون متاحة أثناء التثبيت. هذا هو الإعداد التلقائي لوحدات الميزات التي لا تحدّد نوعًا آخر من خيارات العرض المخصّص.
لمزيد من المعلومات حول عمليات التنزيل أثناء التثبيت، يُرجى الاطّلاع على ضبط التسليم أثناء التثبيت. يمكن لهذه العقدة أيضًا تحديد الشروط التي تقصر الوحدة على الأجهزة التي تستوفي متطلبات معيّنة، مثل ميزات الجهاز أو بلد المستخدم أو الحد الأدنى لمستوى واجهة برمجة التطبيقات. لمزيد من المعلومات، يُرجى الاطّلاع على ضبط التسليم المشروط. |
| <dist:removable dist:value="true | false" /> |
عند عدم ضبط السياسة أو ضبطها على عند ضبط السياسة القيمة التلقائية هي ملاحظة: لا تتوفّر هذه الميزة إلا عند استخدام المكوّن الإضافي لنظام Gradle المتوافق مع Android الإصدار 4.2 أو عند استخدام الإصدار 1.0 من أداة bundletool من سطر الأوامر. |
| </dist:install-time> | |
| <dist:on-demand /> |
تحدِّد هذه السمة أنّه يجب أن تكون الوحدة متاحة للتنزيل عند الطلب. أي أنّ الوحدة لا تكون متاحة في وقت التثبيت، ولكن قد يطلب تطبيقك تنزيلها لاحقًا.
لمزيد من المعلومات حول عمليات التنزيل عند الطلب، يُرجى الاطّلاع على ضبط ميزة "التسليم عند الطلب". |
| </dist:delivery> | |
| </dist:module> | |
| <application
android:hasCode="true | false"> ... </application> |
إذا لم تنشئ وحدة الميزات أي ملفات DEX، أي أنّها لا تحتوي على أي رمز برمجي يتم تجميعه لاحقًا في تنسيق ملف DEX، عليك تنفيذ ما يلي (وإلا قد تظهر لك أخطاء أثناء التشغيل):
|
| ... </manifest> |
مراجع إضافية
لمزيد من المعلومات حول استخدام وحدات الميزات، يمكنك الاطّلاع على المراجع التالية.
منشورات المدوّنات
- ميزات جديدة لمساعدتك في تطوير نشاطك التجاري وإطلاقه وتنميته على Google Play
- أحدث تحديثات "مجموعة حزمات تطبيق Android"، بما في ذلك واجهة برمجة التطبيقات للّغات الإضافية
- Patchwork Plaid — قصة عن التقسيم إلى وحدات
الفيديوهات
- التقديم المخصَّص للمنتجات باستخدام حِزمة التطبيق والمشاركة السهلة للإصدارت المخصصة للاختبار
- أدوات جديدة لتحسين حجم تطبيقك وزيادة عمليات التثبيت على Google Play
بنود الخدمة وأمان البيانات
يعني الوصول إلى مكتبة عرض الميزات في Play أو استخدامها أنّك توافق على بنود خدمة حزمة تطوير البرامج (SDK) لمكتبة Play الأساسية. يُرجى قراءة جميع البنود والسياسات السارية وفهمها قبل الوصول إلى المكتبة.
أمان البيانات
مكتبات Play الأساسية هي واجهة وقت التشغيل لتطبيقك مع "متجر Google Play". لذلك، عند استخدام مكتبة Play الأساسية في تطبيقك، يشغّل "متجر Play" عملياته الخاصة، والتي تشمل معالجة البيانات على النحو الذي تحكمه بنود خدمة Google Play. توضّح المعلومات أدناه طريقة معالجة مكتبات Play الأساسية للبيانات من أجل معالجة طلبات محدّدة من تطبيقك.
واجهة برمجة التطبيقات للغات الإضافية
| البيانات المجمّعة حول الاستخدام | قائمة اللغات المثبّتة |
| الغرض من جمع البيانات | وتُستخدم البيانات التي يتم جمعها لتوفير إصدارات مختلفة من التطبيق بلغات متعددة والحفاظ على اللغات المثبَّتة بعد تحديث التطبيق. |
| تشفير البيانات | يتم تشفير البيانات. |
| مشاركة البيانات | لا يتم نقل البيانات إلى أي جهات خارجية. |
| حذف البيانات | يتم حذف البيانات بعد فترة احتفاظ ثابتة. |
عرض الميزات في Play
| البيانات المجمّعة حول الاستخدام |
البيانات الوصفية للجهاز إصدار التطبيق |
| الغرض من جمع البيانات | تُستخدَم البيانات التي يتم جمعها لعرض الوحدة المناسبة على الجهاز والاحتفاظ بالوحدات المثبَّتة بعد إجراء تحديث وعملية الاحتفاظ بنسخة احتياطية واستعادتها. |
| تشفير البيانات | يتم تشفير البيانات. |
| مشاركة البيانات | لا يتم نقل البيانات إلى أي جهات خارجية. |
| حذف البيانات | يتم حذف البيانات بعد فترة احتفاظ ثابتة. |
نهدف إلى الالتزام بالشفافية قدر الإمكان، إلا أنّك تكون وحدك المسؤول عن تحديد كيفية ملء نموذج قسم "أمان البيانات" في Google Play بشأن ممارسات جمع بيانات المستخدمين ومشاركتها وأمانها في تطبيقك.