טירגוט לפי מכשיר מאפשר לכם לשלוט בצורה מדויקת יותר בחלקים של חבילת האפליקציות שיוצגו במכשירים ספציפיים. לדוגמה, אפשר לוודא שנכס גדול יועבר רק למכשירים עם נפח RAM גדול, או לשלוח גרסאות שונות של נכס למכשירים שונים.
אפשר לטרגט מאפייני מכשיר כמו:
- דגם המכשיר
- זיכרון RAM של המכשיר
- תכונות מערכת
- מערכת על שבב (למכשירים עם רמת API של 31 לפחות)
סקירה כללית של השלבים הנדרשים
כדי להפעיל טירגוט לפי מכשיר, צריך לבצע את השלבים הבאים:
- מגדירים את קבוצות המכשירים בקובץ XML.
- מציינים אילו חלקים מהחבילה יישלחו לאילו קבוצות של מכשירים.
- [אופציונלי] בודקים את ההגדרות באופן מקומי.
- מעלים את החבילה (שמכילה את קובץ ה-XML) ל-Google Play.
בדיקת הגרסה של פלאגין Android Gradle
כדי להשתמש בטירגוט לפי מכשיר, צריך לוודא שגרסת Android Gradle Plugin (AGP) היא לפחות 8.10.0-alpha01. הוא מגיע בחבילה עם Android Studio Meerkat 2 ואילך.
הפעלת טירגוט לפי מכשיר בפלאגין של Android Gradle
צריך להפעיל את האפשרות 'טירגוט לפי מכשיר' באופן מפורש בקובץ gradle.properties
:
android.experimental.enableDeviceTargetingConfigApi=true
יצירת קובץ XML של הגדרות טירגוט לפי מכשיר
קובץ התצורה של טירגוט המכשירים הוא קובץ XML שבו מגדירים את קבוצות המכשירים בהתאמה אישית. לדוגמה, אפשר להגדיר קבוצת מכשירים בשם high_ram
שמכילה את כל המכשירים עם זיכרון RAM בנפח 8GB לפחות:
<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 (כולל): נפח זיכרון RAM נדרש מינימלי (בייטים)
- max_bytes (בלעדי): נפח ה-RAM המרבי הנדרש (בבייטים)
- included_device_ids: דגמי המכשירים שרוצים לכלול בבורר הזה (עד 10,000 מזהי device_id לכל קבוצה). הנכס הזה מתקיים אם המכשיר תואם לאחד מהמכשירים שמופיעים ברשימה.
- build_brand: יצרן המכשיר
- build_device: קוד דגם המכשיר
- excluded_device_ids: דגמי המכשירים שצריך להחריג בבורר הזה
(עד 10,000 מזהי device_id לכל קבוצה). הנכס הזה מתקיים אם המכשיר לא תואם לאף device_id ברשימה.
- build_brand: יצרן המכשיר
- build_device: קוד דגם המכשיר
required_system_features: התכונות שחייבות להיות במכשיר כדי שהוא ייכלל על ידי הבורר הזה (עד 100 תכונות לכל קבוצה). כדי לעמוד בדרישות של המאפיין הזה, המכשיר צריך לכלול את כל תכונות המערכת שמפורטות ברשימה הזו.
- name: תכונת מערכת
forbidden_system_features: תכונות שלא חייבות להיכלל במכשיר על ידי הבורר הזה (עד 100 תכונות לכל קבוצה). אם במכשיר יש אחת מתכונות המערכת שמפורטות ברשימה הזו, הוא לא עומד בדרישות של המאפיין הזה.
- name: תכונת מערכת
system-on-chip: מערכת על שבב (SoC) שרוצים לכלול בבורר הזה. כדי לעמוד בקריטריון הזה, המכשיר צריך לכלול צ'יפ כלשהו מהרשימה הזו. אפשר לטרגט ל-System on Chips רק במכשירים עם רמת API של 31 לפחות.
- manufacturer: יצרן מערכת אחת (SoC)
- model: דגם של מערכת אחת על שבב (SoC)
הוספה של כמה נכסים לבורר יחיד יוצרת ביטוי לוגי מסוג AND, לדוגמה:
<config:device-selector ram-min-bytes="7000000000">
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
תיצור את התנאי לכל המכשירים עם זיכרון RAM בנפח של יותר מ-7GB וגם Pixel 4, גם כתוב כך:
אם רוצים להשתמש בתנאי OR, יוצרים בוחרים נפרדים בקבוצת מכשירים אחת, לדוגמה:
<config:device-selector ram-min-bytes="7000000000"/>
<config:device-selector>
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
תיצור את התנאי לכל המכשירים עם זיכרון RAM בנפח של יותר מ-7GB או שהוא מכשיר 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 של מכשירים נתמכים, ושימוש ביצרן ובקוד הדגם בשדות 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 שנוצרות מה-App Bundle יתחלקו לפי קבוצות מכשירים.
טירגוט לפי מכשיר להפצת פיצ'רים ב-Play
כדי להשתמש בטירגוט לפי מכשיר עם Play Feature Delivery, אפשר לעיין במסמכי העזרה בנושא הפצה מותנית.