नेस्ट की गई टारगेटिंग का इस्तेमाल करके, एसेट पैक या बंडल मॉड्यूल में मौजूद किसी फ़ोल्डर को कई डाइमेंशन (टेक्स्चर कंप्रेसन फ़ॉर्मैट, डिवाइस टीयर, देश का सेट) के हिसाब से टारगेट किया जा सकता है.
नेस्ट की गई टारगेटिंग की मदद से, टारगेटिंग की ऐसी शर्तें तय की जा सकती हैं जिनमें ज़्यादा से ज़्यादा दो टारगेटिंग डाइमेंशन शामिल होते हैं.
फ़ॉर्मैट करें
किसी फ़ोल्डर को एक से ज़्यादा डाइमेंशन के हिसाब से टारगेट करने के लिए, उसके नाम के साथ हैशटैग सफ़िक्स की सीरीज़ में से डाइमेंशन की सूची तय करें.
उदाहरण के लिए, टेक्सचर कम्प्रेशन फ़ॉर्मैट ASTC और डिवाइस टीयर 2 के हिसाब से किसी एसेट फ़ोल्डर को टारगेट करने के लिए, टारगेटिंग इस तरह दिखेगी:
...
.../level1/src/main/assets/character-textures#tcf_astc#tier_2/
...
अगर ऐप्लिकेशन बनाने के लिए Gradle का इस्तेमाल किया जा रहा है, तो उपयोगकर्ता के डिवाइसों पर डिलीवर किए जाने वाले फ़ाइनल APK या एसेट पैक में, डायरेक्ट्री के नाम से टारगेटिंग सफ़िक्स हटा दिए जाते हैं.
अगर सीधे bundletool का इस्तेमाल किया जा रहा है, तो बताएं कि आपको BundleConfig.json
में हर डाइमेंशन के लिए, अलग-अलग सफ़िक्स हटाना है या नहीं. डिवाइस टियर टारगेटिंग के उदाहरण के साथ:
{
...
"optimizations": {
"splitsConfig": {
"splitDimension": [
...
{
"value": "DEVICE_TIER",
"negate": false,
"suffixStripping": {
"enabled": true,
}],
}
}
}
नेस्ट की गई टारगेटिंग, बंडलटूल 1.14.1 या उसके बाद वाले वर्शन और 'Android Gradle प्लग इन' 8.2.0-alpha01 या इसके बाद वाले वर्शन में काम करती है. इसके लिए Gradle 8.1 या इसके बाद का वर्शन होना ज़रूरी है.
हर टारगेटिंग डाइमेंशन के दस्तावेज़ में, अलग-अलग डाइमेंशन के लिए अपने कॉन्फ़िगरेशन को पसंद के मुताबिक बनाने के तरीके के बारे में ज़्यादा जानकारी मिल सकती है.
सीमाएं
ज़्यादा से ज़्यादा दो नेस्ट किए गए डाइमेंशन का इस्तेमाल किया जा सकता है. दूसरे शब्दों में, आपके पास एक ही समय पर डिवाइस टियर, टेक्सचर कंप्रेस करने के फ़ॉर्मैट, और देश के हिसाब से सेट किए गए फ़ोल्डर को टारगेट करने का विकल्प नहीं है. आपको इनमें से दो विकल्प चुनने होंगे.
आपको फ़ोल्डर पाथ के एक ही लेवल पर, दो नेस्ट किए गए डाइमेंशन बताने चाहिए. उदाहरण के लिए, यहां दी गई फ़ोल्डर टारगेटिंग की अनुमति नहीं है, क्योंकि #tcf_astc और #tier_2 अलग-अलग पाथ सेगमेंट में दिखते हैं:
.../level1/src/main/assets/character-textures#tcf_astc/level1#tier_2/
आपके नेस्ट किए गए डाइमेंशन, पूरे बंडल में एक जैसे होने चाहिए. उदाहरण के लिए, आपके पास ऐसा एसेट पैक नहीं हो सकता जिसमें डिवाइस टीयर और देश के हिसाब से सेट किए गए डिवाइसों को नेस्ट किया गया हो और कोई दूसरा एसेट पैक हो जिसमें देश के हिसाब से सेट किए गए डिवाइसों और टेक्सचर कंप्रेस करने के फ़ॉर्मैट को नेस्ट किया गया हो.
दो डाइमेंशन के लिए इस्तेमाल की जाने वाली वैल्यू, पूरे बंडल में एक जैसी होनी चाहिए. साथ ही, आपको वैल्यू का पूरा कॉम्बिनेशन तय करना होगा. उदाहरण के लिए, अगर आपको टेक्सचर कंप्रेसन फ़ॉर्मैट और देश के हिसाब से सेट किए गए वर्शन को नेस्ट करना है और आपके पास चार टीसीएफ़ (ASTC, ETC2, PVRTC, डिफ़ॉल्ट फ़ॉलबैक) और तीन देश के हिसाब से सेट किए गए वर्शन (latam, sea, डिफ़ॉल्ट फ़ॉलबैक) हैं, तो आपको सभी 12 कॉम्बिनेशन के लिए एक फ़ोल्डर तय करना होगा:
level1/textures#countries_latam#tcf_astc/…
level1/textures#countries_latam#tcf_etc2/…
level1/textures#countries_latam#tcf_pvrtc/…
level1/textures#countries_latam/…
level1/textures#countries_sea#tcf_astc/…
level1/textures#countries_sea#tcf_etc2/…
level1/textures#countries_sea#tcf_pvrtc/…
level1/textures#countries_sea/…
level1/textures#tcf_astc/…
level1/textures#tcf_etc2/…
level1/textures#tcf_pvrtc/…
level1/textures/…
- आपको एक ही ऐसेट पैक या बंडल मॉड्यूल में, अलग-अलग कॉन्टेंट फ़ोल्डर पर नेस्ट की गई टारगेटिंग और सिंगल-डाइमेंशन टारगेटिंग, दोनों का इस्तेमाल करने की अनुमति है. अगर किसी डाइमेंशन का इस्तेमाल, सिंगल-डाइमेंशन टारगेटिंग और नेस्ट की गई टारगेटिंग, दोनों में किया जाता है, तो इस्तेमाल की जाने वाली वैल्यू का सेट हमेशा एक ही होना चाहिए. उदाहरण के लिए, एक-डाइमेंशन डिवाइस टीयर टारगेटिंग में, चार टीयर के हिसाब से टारगेट नहीं किया जा सकता. इसके बाद, देश के सेट या टीसीएफ़ के साथ नेस्ट किए जाने पर, सिर्फ़ तीन टीयर का इस्तेमाल किया जा सकता है.