يمنحك استهداف الأجهزة إمكانية التحكّم بشكل أدق في أجزاء حِزمة تطبيقك التي يتم إرسالها إلى أجهزة معيّنة. على سبيل المثال، يمكنك التأكّد من عدم عرض مادة عرض كبيرة إلا على الأجهزة التي تتضمّن ذاكرة وصول عشوائي (RAM) كبيرة، أو يمكنك عرض إصدارات مختلفة من مادة العرض على أجهزة مختلفة.
يمكنك استهداف خصائص الأجهزة، مثل:
- طراز الجهاز
- ذاكرة الوصول العشوائي للجهاز
- ميزات النظام
- المنظومة على الرقاقة (للأجهزة التي تعمل بمستوى واجهة برمجة التطبيقات 31 على الأقل)
نظرة عامة على الخطوات المطلوبة
يجب اتّباع الخطوات التالية لتفعيل استهداف الأجهزة:
- حدِّد مجموعات الأجهزة في ملف XML.
- حدِّد أجزاء الحزمة التي يجب أن تنتقل إلى مجموعات الأجهزة التي تريدها.
- [اختياري] اختبِر الإعدادات محليًا.
- حمِّل حِزمك (التي تحتوي على ملف XML) إلى Google Play.
التحقّق من إصدار المكوّن الإضافي لنظام Gradle المتوافق مع Android
لاستخدام ميزة استهداف الأجهزة، تأكَّد من أنّ إصدار المكوّن الإضافي لنظام Gradle المتوافق مع Android (AGP) هو 8.10.0-alpha01 على الأقل. يتم تضمين هذا الإصدار مع الإصدار 2 من Android Studio Meerkat والإصدارات الأحدث.
تفعيل استهداف الأجهزة في "المكوّن الإضافي لنظام Gradle المتوافق مع Android"
يجب تفعيل استهداف الأجهزة صراحةً في ملف gradle.properties
:
android.experimental.enableDeviceTargetingConfigApi=true
إنشاء ملف XML لإعداد استهداف الأجهزة
ملف إعداد استهداف الأجهزة هو ملف XML تحدِّد فيه
مجموعات الأجهزة المخصّصة. على سبيل المثال، يمكنك تحديد مجموعة أجهزة باسم
high_ram
تحتوي على جميع الأجهزة التي تتضمّن ذاكرة وصول عشوائي بسعة 8 غيغابايت على الأقل:
<config:device-targeting-config
xmlns:config="http://schemas.android.com/apk/config">
<config:device-group name="high_ram">
<config:device-selector ram-min-bytes="8000000000"/>
</config:device-group>
</config:device-targeting-config>
تتألّف مجموعة الأجهزة من 5 أداة اختيار أجهزة كحدّ أقصى. يتم تضمين جهاز في مجموعة أجهزة إذا كان يستوفي أيًا من محددات الأجهزة الخاصة بها.
يمكن أن يتضمّن أداة اختيار الأجهزة سمات جهاز واحدة أو أكثر. يتم اختيار جهاز إذا كان يتطابق مع جميع خصائص الجهاز المحدّدة في أداة الاختيار.
خصائص الأجهزة المتاحة
- device_ram: متطلبات ذاكرة الوصول العشوائي (RAM) للجهاز
- min_bytes (شاملة): الحد الأدنى لذاكرة الوصول العشوائي المطلوبة (بالبايت)
- max_bytes (حصري): الحد الأقصى لسعة ذاكرة الوصول العشوائي المطلوبة (بالبايت)
- included_device_ids: طُرز الأجهزة التي سيتم تضمينها في هذا العنصر المحدّد
(10,000 معرّف جهاز كحد أقصى لكل مجموعة). يتم استيفاء هذا السمة إذا كان
device يتطابق مع أي device_id في القائمة.
- build_brand: الشركة المصنّعة للجهاز
- build_device: رمز طراز الجهاز
- excluded_device_ids: طُرز الأجهزة المطلوب استبعادها في هذا العنصر المحدّد
(10,000 معرّف جهاز كحد أقصى لكل مجموعة). يتم استيفاء هذه السمة إذا كان
device لا يتطابق مع أي device_id في القائمة.
- build_brand: الشركة المصنّعة للجهاز
- build_device: رمز طراز الجهاز
required_system_features: الميزات التي يجب أن يمتلكها الجهاز ليتم تضمينها من خلال هذا العنصر المحدّد (100 ميزة كحد أقصى لكل مجموعة) يجب أن يتضمّن الجهاز جميع ميزات النظام الواردة في هذه القائمة لاستيفاء هذا السمة.
مرجع ميزة النظام
- الاسم: ميزة نظام
forbidden_system_features: الميزات التي يجب ألا يتم تضمينها في الجهاز باستخدام هذا العنصر المحدّد (100 ميزة كحد أقصى لكل مجموعة) إذا كان الجهاز يتضمّن أيًا من ميزات النظام الواردة في هذه القائمة، يعني ذلك أنّه لا يستوفي هذا السمة.
مرجع ميزة النظام
- الاسم: ميزة نظام
منظومة على رقاقة: منظومة على رقاقة ليتم تضمينها في هذا الاختيار. يجب أن يحتوي الجهاز على أي شريحة في هذه القائمة لاستيفاء هذه السمة. لا يمكن استهداف شرائح System on إلا على الأجهزة التي تعمل بإصدار المستوى 31 لواجهة برمجة التطبيقات على الأقل.
- manufacturer: الشركة المصنّعة للمنظومة على الرقاقة
- model: نموذج المنظومة على الرقاقة
يؤدي تضمين مواقع متعددة في أداة اختيار واحدة إلى إنشاء عامل تشغيل منطقي "و"، على سبيل المثال:
<config:device-selector ram-min-bytes="7000000000">
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
سيؤدي ذلك إلى إنشاء الشرط لجميع الأجهزة التي تتضمّن ذاكرة وصول عشوائي (RAM) بسعة تزيد عن 7 غيغابايت وأنّها من طراز Pixel 4، والذي يمكن كتابته أيضًا على النحو التالي:
إذا كنت تريد شرط "أو"، أنشئ أدوات اختيار منفصلة في مجموعة أجهزة واحدة، على سبيل المثال:
<config:device-selector ram-min-bytes="7000000000"/>
<config:device-selector>
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
سيؤدي ذلك إلى إنشاء الشرط لجميع الأجهزة التي تحتوي على ذاكرة وصول عشوائي (RAM) بسعة تزيد عن 7 غيغابايت أو هو هاتف Pixel 4، والذي يمكن كتابته أيضًا على النحو التالي:
في ما يلي مثال يعرض جميع خصائص الجهاز الممكنة:
<config:device-targeting-config
xmlns:config="http://schemas.android.com/apk/config">
<config:device-group name="myCustomGroup1">
<config:device-selector ram-min-bytes="8000000000">
<config:included-device-id brand="google" device="redfin"/>
<config:included-device-id brand="google" device="sailfish"/>
<config:included-device-id brand="good-brand"/>
<config:excluded-device-id brand="google" device="caiman"/>
<config:system-on-chip manufacturer="Sinclair" model="ZX80"/>
<config:system-on-chip manufacturer="Commodore" model="C64"/>
</config:device-selector>
<config:device-selector ram-min-bytes="16000000000"/>
</config:device-group>
<config:device-group name="myCustomGroup2">
<config:device-selector ram-min-bytes="4000000000" ram-max-bytes="8000000000">
<config:required-system-feature name="android.hardware.bluetooth"/>
<config:required-system-feature name="android.hardware.location"/>
<config:forbidden-system-feature name="android.hardware.camera"/>
<config:forbidden-system-feature name="mindcontrol.laser"/>
</config:device-selector>
</config:device-group>
</config:device-targeting-config>
الرموز الرسمية للشركة المصنّعة للجهاز وطراز الجهاز
يمكنك العثور على التنسيق الصحيح لشركة تصنيع الجهاز ورقم طراز الجهاز باستخدام "قائمة الأجهزة" في Google Play Console، وذلك من خلال:
فحص الأجهزة الفردية باستخدام "قائمة الأجهزة"، والعثور على رمز الشركة المصنّعة والطراز في المواقع الجغرافية كما هو موضّح في المثال أدناه (بالنسبة إلى Google Pixel 4a، الشركة المصنّعة هي "Google" ورمز الطراز هو "sunfish"):
تنزيل ملف CSV للأجهزة المتوافقة، واستخدام Manufacturer و Model Code للساحتَين build_brand وbuild_device، على التوالي
تضمين ملف إعدادات استهداف الأجهزة في حِزمة تطبيقك
أضِف ما يلي إلى ملف build.gradle
الخاص بالوحدة الرئيسية:
android {
...
bundle {
deviceTargetingConfig = file('device_targeting_config.xml')
deviceGroup {
enableSplit = true // split bundle by #group
defaultGroup = "other" // group used for standalone APKs
}
}
...
}
device_targeting_config.xml
هو مسار ملف الإعدادات بالنسبة إلى
الوحدة الرئيسية. يضمن ذلك تجميع ملف الإعداد مع
حزمة تطبيقك.
تضمن عبارة deviceGroup
أن يتم хувين حِزم APK التي تم إنشاؤها من حِزمك حسب مجموعات الأجهزة.
استهداف الأجهزة في ميزة "عرض الميزات في Play"
لاستخدام ميزة "استهداف الأجهزة" مع ميزة "إرسال الميزات" من Play، يُرجى الاطّلاع على مستندات التسليم المشروط.