डिवाइस टारगेटिंग की मदद से, यह कंट्रोल किया जा सकता है कि आपके ऐप्लिकेशन बंडल के कौनसे हिस्से, खास डिवाइसों पर डिलीवर किए जाएं. उदाहरण के लिए, यह पक्का किया जा सकता है कि बड़ी एसेट सिर्फ़ ज़्यादा रैम वाले डिवाइसों पर डिलीवर की जाए या किसी एसेट के अलग-अलग वर्शन, अलग-अलग डिवाइसों पर डिलीवर किए जाएं.
डिवाइस की इन प्रॉपर्टी को टारगेट किया जा सकता है:
- डिवाइस का मॉडल
- डिवाइस की रैम
- सिस्टम की सुविधाएं
- चिप पर सिस्टम (कम से कम एपीआई लेवल 31 वाले डिवाइसों के लिए)
ज़रूरी चरणों के बारे में खास जानकारी
डिवाइस टारगेटिंग की सुविधा चालू करने के लिए, यह तरीका अपनाएं:
- एक्सएमएल फ़ाइल में अपने डिवाइस ग्रुप तय करें.
- बताएं कि आपके बंडल के कौनसे हिस्से किन डिवाइस ग्रुप में शामिल होने चाहिए.
- [ज़रूरी नहीं] अपने कॉन्फ़िगरेशन की स्थानीय तौर पर जांच करें.
- Google Play पर अपना बंडल (जिसमें एक्सएमएल फ़ाइल शामिल है) अपलोड करें.
Android Gradle प्लग इन का वर्शन देखना
डिवाइस टारगेटिंग का इस्तेमाल करने के लिए, पक्का करें कि आपके Android Gradle प्लग इन (AGP) का वर्शन कम से कम 8.10.0-alpha01 हो. यह Android Studio Meerkat 2 और उसके बाद के वर्शन के साथ पैकेज किया गया है.
Android Gradle प्लग इन में डिवाइस टारगेटिंग की सुविधा चालू करना
आपकी gradle.properties
फ़ाइल में, डिवाइस टारगेटिंग की सुविधा साफ़ तौर पर चालू होनी चाहिए:
android.experimental.enableDeviceTargetingConfigApi=true
डिवाइस टारगेटिंग कॉन्फ़िगरेशन एक्सएमएल फ़ाइल बनाना
डिवाइस टारगेटिंग कॉन्फ़िगरेशन फ़ाइल, एक एक्सएमएल फ़ाइल होती है. इसमें, अपने पसंद के डिवाइस ग्रुप तय किए जाते हैं. उदाहरण के लिए, 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>
डिवाइस ग्रुप में ज़्यादा से ज़्यादा पांच डिवाइस सिलेक्टर होते हैं. किसी डिवाइस को डिवाइस ग्रुप में शामिल किया जाता है, अगर वह डिवाइस ग्रुप के किसी भी डिवाइस सिलेक्टर से मेल खाता है.
डिवाइस चुनने के लिए उपलब्ध विकल्प में एक या उससे ज़्यादा डिवाइस प्रॉपर्टी हो सकती हैं. किसी डिवाइस को तब चुना जाता है, जब वह सिलेक्टर की सभी डिवाइस प्रॉपर्टी से मेल खाता हो.
डिवाइस की उपलब्ध प्रॉपर्टी
- device_ram: डिवाइस के रैम से जुड़ी ज़रूरी शर्तें
- min_bytes (inclusive): ज़रूरी रैम (बाइट में)
- max_bytes (खास): ज़्यादा से ज़्यादा रैम (बाइट में)
- included_device_ids: इस सिलेक्टर में शामिल किए जाने वाले डिवाइस मॉडल
(हर ग्रुप में ज़्यादा से ज़्यादा 10,000 device_ids). यह प्रॉपर्टी तब लागू होती है, जब डिवाइस, सूची में मौजूद किसी भी device_id से मेल खाता हो.
- build_brand: डिवाइस बनाने वाली कंपनी
- build_device: डिवाइस मॉडल का कोड
- excluded_device_ids: इस सिलेक्टर में शामिल नहीं किए जाने वाले डिवाइस मॉडल
(हर ग्रुप में ज़्यादा से ज़्यादा 10,000 device_ids). यह प्रॉपर्टी तब लागू होती है, जब डिवाइस, सूची में मौजूद किसी भी device_id से मेल न खाता हो.
- build_brand: डिवाइस बनाने वाली कंपनी
- build_device: डिवाइस मॉडल का कोड
required_system_features: इस सिलेक्टर की मदद से, डिवाइस में ये सुविधाएं होनी चाहिए (हर ग्रुप में ज़्यादा से ज़्यादा 100 सुविधाएं). इस प्रॉपर्टी की ज़रूरी शर्तें पूरी करने के लिए, डिवाइस में इस सूची में शामिल सभी सिस्टम सुविधाएं होनी चाहिए.
सिस्टम की सुविधा का रेफ़रंस
- name: सिस्टम की सुविधा
forbidden_system_features: ऐसी सुविधाएं जिन्हें इस सिलेक्टर की मदद से किसी डिवाइस में शामिल नहीं किया जाना चाहिए (हर ग्रुप में ज़्यादा से ज़्यादा 100 सुविधाएं). अगर किसी डिवाइस में इस सूची में दी गई सिस्टम की कोई सुविधा है, तो वह इस प्रॉपर्टी के मुताबिक नहीं है.
सिस्टम की सुविधा का रेफ़रंस
- name: सिस्टम की सुविधा
system-on-chip: इस सिलेक्टर में शामिल किए जाने वाले चिप पर सिस्टम. इस प्रॉपर्टी को पूरा करने के लिए, डिवाइस में इस सूची में शामिल कोई चिप होना चाहिए. सिस्टम-ऑन-चिप को सिर्फ़ उन डिवाइसों पर टारगेट किया जा सकता है जिन पर कम से कम एपीआई लेवल 31 हो.
- मैन्युफ़ैक्चरर: सिस्टम ऑन चिप मैन्युफ़ैक्चरर
- model: सिस्टम ऑन चिप मॉडल
एक सिलेक्टर में कई प्रॉपर्टी शामिल करने पर, लॉजिकल AND बनता है. उदाहरण के लिए:
<config:device-selector ram-min-bytes="7000000000">
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
7 जीबी से ज़्यादा रैम वाले सभी डिवाइसों के लिए शर्त तय करेगा और यह Pixel 4 है. इसे इस तरह भी लिखा जा सकता है:
अगर आपको OR शर्त चाहिए, तो एक डिवाइस ग्रुप में अलग-अलग सिलेक्टर बनाएं. उदाहरण के लिए:
<config:device-selector ram-min-bytes="7000000000"/>
<config:device-selector>
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
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 फ़ाइल डाउनलोड करना. साथ ही, build_brand और build_device फ़ील्ड के लिए, Manufacturer और Model Code का इस्तेमाल करना.
अपने ऐप्लिकेशन बंडल में, डिवाइस टारगेटिंग कॉन्फ़िगरेशन फ़ाइल शामिल करें
अपने मुख्य मॉड्यूल की 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 Feature Delivery के लिए डिवाइस टारगेटिंग
Play Feature Delivery के साथ डिवाइस टारगेटिंग का इस्तेमाल करने के लिए, शर्तों के हिसाब से डिलीवरी के लिए दस्तावेज़ देखें.