चेतावनी: Google Play Instant अब उपलब्ध नहीं होगा. दिसंबर 2025 से, इंस्टैंट ऐप्लिकेशन को Google Play से पब्लिश नहीं किया जा सकेगा. साथ ही, सभी Google Play services के इंस्टैंट एपीआई काम नहीं करेंगे. उपयोगकर्ताओं को अब Play के ज़रिए, किसी भी तरीके से इंस्टैंट ऐप्लिकेशन नहीं दिखाए जाएंगे.
हम यह बदलाव, डेवलपर के सुझावों के आधार पर कर रहे हैं. साथ ही, Google Play इंस्टैंट की सुविधा लॉन्च करने के बाद से, हम लगातार इस नेटवर्क को बेहतर बनाने के लिए काम कर रहे हैं.
उपयोगकर्ताओं की संख्या बढ़ाने के लिए, हम डेवलपर को अपने ऐप्लिकेशन या गेम पर उपयोगकर्ताओं को भेजने का सुझाव देते हैं. इसके लिए, डीपलिंक का इस्तेमाल करके, उपयोगकर्ताओं को ज़रूरत के हिसाब से किसी खास प्रोसेस या सुविधा पर रीडायरेक्ट करें.
अपना पहला इंस्टैंट ऐप्लिकेशन बनाएं में बताए गए तरीके से, Google Play इंस्टैंट पर ऐप्लिकेशन को चलाने के लिए सेट अप किया जा सकता है. यह तरीका गेम पर भी लागू होता है. इस गाइड में, गेम सेट अप करने के कुछ खास चरणों के बारे में बताया गया है.
Unity (Google Play Instant Unity प्लग इन के साथ या इसके बिना), Cocos2D, Android Studio या अपने कस्टम इंजन का इस्तेमाल करके, Google Play Instant के लिए गेम डेवलप किए जा सकते हैं.
इस गाइड में यह माना गया है कि आपको पहले से ही पता है कि आपको किस तरह का गेमिंग अनुभव देना है. अगर आपको अच्छी क्वालिटी के गेम बनाने के लिए आइडिया और सबसे सही तरीके चाहिए, तो Google Play Instant पर गेम के लिए यूज़र एक्सपीरियंस के सबसे सही तरीके लेख पढ़ें.
इसके अलावा, Google Play Instant पर चलने वाले गेम को पब्लिश करने से पहले, आपको तकनीकी ज़रूरी शर्तों की चेकलिस्ट देखनी चाहिए.
एंट्री पॉइंट तय करना
अगर किसी गतिविधि में नीचे दिया गया इंटेंट फ़िल्टर शामिल है, तो वह Google Play इंस्टैंट के अनुभव का एंट्री पॉइंट बन जाता है:
<activity android:name=".GameActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
यह गतिविधि तब शुरू होती है, जब कोई उपयोगकर्ता Play Store में अभी आज़माएं बटन या Google Play Games ऐप्लिकेशन में इंस्टैंट गेमिंग बटन पर टैप करता है. इस गतिविधि को सीधे डीप लिंक एपीआई का इस्तेमाल करके भी लॉन्च किया जा सकता है.
वर्शन के सही कोड तय करना
आपके गेम के इंस्टैंट वर्शन का वर्शन कोड, इंस्टॉल किए जा सकने वाले गेम के वर्शन कोड से कम होना चाहिए. इस तरह से अपने ऐप्लिकेशन का वर्शन उपलब्ध कराने पर, खिलाड़ी Google Play इंस्टैंट के अनुभव से अपने डिवाइस पर गेम को डाउनलोड और इंस्टॉल कर सकते हैं. Android फ़्रेमवर्क इस ट्रांज़िशन को ऐप्लिकेशन अपडेट मानता है.
यह पक्का करने के लिए कि आपने वर्शनिंग के लिए सुझाई गई स्कीम का पालन किया है, इनमें से कोई एक रणनीति अपनाएं:
- Google Play Instant के अनुभव के लिए, वर्शन कोड को 1 पर रीस्टार्ट करें.
- इंस्टॉल किए जा सकने वाले ऐप्लिकेशन के वर्शन कोड को ज़्यादा संख्या, जैसे कि 1,000 से बढ़ाएं. इससे यह पक्का किया जा सकेगा कि इंस्टैंट इस्तेमाल की सुविधा देने वाले ऐप्लिकेशन के वर्शन की संख्या बढ़ाने के लिए, ज़रूरत के मुताबिक जगह हो.
इंस्टैंट गेम और इंस्टॉल किए जा सकने वाले गेम को दो अलग-अलग Android Studio प्रोजेक्ट में डेवलप किया जा सकता है. हालांकि, ऐसा करने पर, आपको Google Play पर अपना गेम पब्लिश करने के लिए ये काम करने होंगे:
- दोनों Android Studio प्रोजेक्ट में एक ही पैकेज नाम का इस्तेमाल करें.
- Google Play Console में, एक ही ऐप्लिकेशन के लिए दोनों वैरिएंट अपलोड करें.
अपने गेम का वर्शन सेट करने के बारे में ज़्यादा जानने के लिए, अपने ऐप्लिकेशन का वर्शन देखें.
एक्ज़ीक्यूशन एनवायरमेंट के साथ काम करना
अन्य ऐप्लिकेशन की तरह ही, Google Play Instant पर मौजूद गेम भी डिवाइस पर सीमित सैंडबॉक्स में चलते हैं. इस एनवायरमेंट में प्रोसेस को लागू करने के लिए, नीचे दिए गए सेक्शन में दिया गया तरीका अपनाएं.
क्लियरटेक्स्ट ट्रैफ़िक से ऑप्ट आउट करना
Google Play Instant पर मौजूद गेम, एचटीटीपी ट्रैफ़िक के साथ काम नहीं करते. अगर आपका गेम, Android 9 (एपीआई लेवल 28) या उसके बाद के वर्शन को टारगेट करता है, तो Android आपके गेम में डिफ़ॉल्ट रूप से क्लियरटेक्स्ट की सुविधा बंद कर देता है.
अगर आपका गेम Android 8.1 (एपीआई लेवल 27) या उससे पहले के वर्शन को टारगेट करता है, तो आपको नेटवर्क सिक्योरिटी कॉन्फ़िगरेशन फ़ाइल बनानी होगी.
इस फ़ाइल में, cleartextTrafficPermitted
को false
पर सेट करें, जैसा कि नीचे दिए गए कोड स्निपेट में दिखाया गया है:
res/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="false"> <domain includeSubdomains="true">secure.example.com</domain> </domain-config> </network-security-config>
टारगेट सैंडबॉक्स वर्शन अपडेट करना
अपने इंस्टैंट गेम की AndroidManifest.xml
फ़ाइल को अपडेट करें, ताकि वह उस सैंडबॉक्स एनवायरमेंट को टारगेट कर सके जिसमें Google Play Instant काम करता है. इस अपडेट को पूरा करने के लिए, अपने गेम के <manifest>
एलिमेंट में android:targetSandboxVersion
एट्रिब्यूट जोड़ें. इस बारे में नीचे दिए गए कोड स्निपेट में बताया गया है:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
...
android:targetSandboxVersion="2" ...>
ज़्यादा जानकारी के लिए, targetSandboxVersion
एट्रिब्यूट के दस्तावेज़ देखें.
कैश मेमोरी या ऐप्लिकेशन डेटा की मौजूदगी पर भरोसा न करें
इंस्टैंट ऐप्लिकेशन का कैश मेमोरी तब तक उपयोगकर्ता के डिवाइस पर डाउनलोड रहता है, जब तक उसे मिटाया नहीं जाता. कैश मेमोरी इनमें से किसी एक स्थिति में मिटाया जाता है:
- डिवाइस में उपलब्ध मेमोरी कम होने की वजह से, झटपट इस्तेमाल की सुविधा देने वाले ऐप्लिकेशन का कैश मेमोरी, ग़ैर-ज़रूरी डेटा हटाने की प्रोसेस से हट जाता है.
- उपयोगकर्ता अपना डिवाइस रीस्टार्ट करता है.
अगर इनमें से कोई भी प्रोसेस होती है, तो उपयोगकर्ता को आपके इंस्टैंट ऐप्लिकेशन के साथ इंटरैक्ट करने के लिए, उसे फिर से डाउनलोड करना होगा.
अगर सिस्टम में स्टोरेज की जगह बहुत कम है, तो हो सकता है कि आपके इंस्टैंट अनुभव का उपयोगकर्ता डेटा, इंटरनल स्टोरेज से हटा दिया गया हो. इसलिए, हमारा सुझाव है कि आप समय-समय पर उपयोगकर्ता के डेटा को अपने गेम के सर्वर के साथ सिंक करें, ताकि उपयोगकर्ता की प्रोग्रेस को सेव किया जा सके.
अपने ऐप्लिकेशन का आकार कम करना
अन्य ऐप्लिकेशन के मुकाबले, Google Play इंस्टैंट पर मौजूद गेम के डाउनलोड साइज़ की सीमा 15 एमबी होती है. इस साइज़ का गेम बनाने के लिए, आपको अपने गेम के लॉजिक को फिर से तैयार करना पड़ सकता है. इस सेक्शन में कुछ टूल और तरीकों के बारे में बताया गया है. इनकी मदद से, अपने गेम के साइज़ को ऑप्टिमाइज़ किया जा सकता है.
टूल
यहां दिए गए टूल की मदद से, यह पता लगाया जा सकता है कि आपके गेम का साइज़ किस वजह से बड़ा है:
- APK ऐनालाइज़र: यह कंपाइल किए गए APK के कॉन्टेंट की पूरी जानकारी देता है. इस व्यू का इस्तेमाल करके, यह पता लगाया जा सकता है कि हर एलिमेंट, कुल साइज़ में कितने बाइट का योगदान दे रहा है. इस टूल का इस्तेमाल करके, उन संसाधनों, ऐसेट, लॉजिक, और नेटिव लाइब्रेरी का साइज़ तुरंत देखें जिनका इस्तेमाल आपका गेम कर रहा है.
- Bloaty McBloatface: यह बाइनरी फ़ाइलों का साइज़ दिखाता है.
- Android GPU Inspector: अपने गेम को फिर से कंपाइल किए बिना, टेक्स्चर के साइज़ को कम करने से फ़ाइल के साइज़ पर पड़ने वाले असर को देखें.
तकनीकें
यहां उन तकनीकों की सूची दी गई है जिनका इस्तेमाल करके, अपने गेम का साइज़ कम किया जा सकता है:
- अपने गेम के कुछ लॉजिक को निकालें और उसे एक या उससे ज़्यादा फीचर मॉड्यूल में डालें. इन मॉड्यूल को साइज़ की सीमा में नहीं गिना जाता.
- अपने गेम के टेक्सचर का रिज़ॉल्यूशन कम करें.
- WebP फ़ॉर्मैट का इस्तेमाल करें. ऐसा खास तौर पर तब करें, जब जीपीयू पर बिना कंप्रेस किए गए टेक्सचर का इस्तेमाल किया जा रहा हो. WebP फ़ॉर्मैट से ऐसी इमेज बनती हैं जिनकी क्वालिटी JPEG इमेज जैसी ही होती है, लेकिन साइज़ 15 से 30% कम होता है. WebP इमेज को डिकंप्रेस करने में ज़्यादा समय लगता है. हालांकि, डिकंप्रेस करने में लगने वाला यह समय, गेम के टेक्सचर को डाउनलोड करने में लगने वाले समय के मुकाबले काफ़ी कम होता है. Google ने इस फ़ॉर्मैट को ओपन सोर्स गेम इंजन में भी इंटिग्रेट किया है.
- साउंड और संगीत को कंप्रेस करना या फिर से इस्तेमाल करना.
- अपनी बाइनरी फ़ाइल को छोटा करने के लिए, अलग-अलग कंपाइलेशन फ़्लैग का इस्तेमाल करें:
-fvisibility=hidden
– सबसे ज़रूरी.cmake
में, इसे इस तरह से तय किया जा सकता है:$ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
-Oz
– साइज़ कम करने के लिए भी ज़रूरी है. अगरgcc
का इस्तेमाल करके कंपाइल किया जाता है, तो इसके बजाय-Os
का इस्तेमाल करें.-flto
– कभी-कभी फ़ाइल का साइज़ कम हो जाता है.- लिंकर फ़्लैग –
--gc-sections
का इस्तेमाल,-ffunction-sections
और-fdata-sections
जैसे कंपाइलर फ़्लैग के साथ करें.
- अपने कोड और संसाधनों को छोटा करने के लिए, Proguard का इस्तेमाल करें.
- छोटी DEX फ़ाइलें जनरेट करने के लिए, Gradle 4.4 या इसके बाद के वर्शन का इस्तेमाल करें.
- ऐसेट की क्लाउड डिलीवरी लागू करें.
बड़े गेम को कई APK में बांटना
APK का साइज़ कम करने के सुझावों को लागू करने के बाद भी, Google Play Instant के अनुभव को ऑप्टिमाइज़ करना मुश्किल हो सकता है, ताकि आपका गेम 15 एमबी के एक APK में फ़िट हो सके. इस समस्या को हल करने के लिए, अपने गेम को कई APK में बांटा जा सकता है. खिलाड़ी सबसे पहले मुख्य, बेस APK डाउनलोड करते हैं. गेम खेलते समय, बाकी बचे स्प्लिट APKs बैकग्राउंड में गेम के लिए उपलब्ध कराए जाते हैं.
उदाहरण के लिए, बेस APK में गेम का मुख्य इंजन और लोडिंग स्क्रीन दिखाने के लिए ज़रूरी ऐसेट शामिल हो सकती हैं. बेस APK के लॉन्च होने पर, यह लोडिंग स्क्रीन दिखाता है और तुरंत एक और Split APK का अनुरोध करता है. इस Split APK में गेम और लेवल का डेटा होता है. स्प्लिट APK उपलब्ध होने के बाद, वह गेम इंजन में अपनी एसेट लोड कर सकता है. साथ ही, खिलाड़ी को गेम शुरू करने के लिए ज़रूरी कॉन्टेंट दे सकता है.
यूज़र एक्सपीरियंस के सबसे सही तरीके अपनाना
अपने गेम को कॉन्फ़िगर करने के बाद, उसे झटपट इस्तेमाल करने की सुविधा के साथ काम करने लायक बनाएं. इसके बाद, उपयोगकर्ता को बेहतर अनुभव देने के लिए, नीचे दिए गए सेक्शन में दिखाया गया लॉजिक जोड़ें.
64-बिट आर्किटेक्चर के साथ काम करना
Google Play पर पब्लिश किए गए ऐप्लिकेशन, 64-बिट आर्किटेक्चर के साथ काम करने चाहिए. अपने ऐप्लिकेशन का 64-बिट वर्शन जोड़ने से, उसकी परफ़ॉर्मेंस बेहतर होती है. साथ ही, सिर्फ़ 64-बिट हार्डवेयर वाले डिवाइसों के लिए, ऐप्लिकेशन को सेट अप किया जा सकता है. 64-बिट सपोर्ट के बारे में ज़्यादा जानें.
यह देखना कि गेम, इंस्टैंट गेमिंग की सुविधा के साथ चल रहा है या नहीं
अगर आपके गेम का कुछ लॉजिक इस बात पर निर्भर करता है कि उपयोगकर्ता आपके इंस्टैंट गेमप्ले में दिलचस्पी ले रहा है या नहीं, तो isInstantApp()
तरीका इस्तेमाल करें. अगर फ़िलहाल चल रही प्रोसेस, तुरंत रिस्पॉन्स देने वाली प्रोसेस है, तो यह तरीका true
दिखाता है.
इस जांच से यह पता चलता है कि आपके ऐप्लिकेशन को सीमित तौर पर चलाए जाने वाले एनवायरमेंट में चलाया जाना चाहिए या प्लैटफ़ॉर्म की सुविधाओं का फ़ायदा लिया जा सकता है.
इंस्टॉल करने का अनुरोध दिखाना
अगर आपने Google Play Instant की सुविधा का इस्तेमाल करके, गेम को आज़माने की सुविधा बनाई है, तो गेम में खिलाड़ी को अपने डिवाइस पर गेम का पूरा वर्शन इंस्टॉल करने के लिए कहा जाएगा. ऐसा करने के लिए, Android के लिए Google API में showInstallPrompt()
वाला तरीका इस्तेमाल करें.
खिलाड़ी को इंस्टॉल करने के लिए कब और कैसे कहा जाए, इस बारे में ज़्यादा जानने के लिए, Google Play इंस्टैंट पर गेम के लिए यूज़र एक्सपीरियंस के सबसे सही तरीके देखें.
इंस्टॉल किए गए वर्शन में डेटा ट्रांसफ़र करना
अगर किसी खिलाड़ी को आपके गेम को आज़माने का अनुभव अच्छा लगता है, तो वह आपके गेम का पूरा वर्शन इंस्टॉल कर सकता है. उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, यह ज़रूरी है कि गेम के इंस्टैंट वर्शन में गेम खेलने के दौरान खिलाड़ी की प्रोग्रेस, गेम के पूरे वर्शन में ट्रांसफ़र हो जाए.
अगर आपके गेम में 2
का targetSandboxVersion
बताया गया है, तो खिलाड़ी की प्रोग्रेस आपके गेम के पूरे वर्शन में अपने-आप ट्रांसफ़र हो जाती है. अगर ऐसा नहीं किया जाता है, तो आपको खिलाड़ी की प्रोग्रेस से जुड़ा डेटा मैन्युअल तरीके से ट्रांसफ़र करना होगा. ऐसा करने के लिए, Cookie API - सैंपल ऐप्लिकेशन का इस्तेमाल करें
अन्य संसाधन
Google Play Instant के बारे में ज़्यादा जानने के लिए, इन संसाधनों पर जाएं:
- कोडलैब: अपना पहला इंस्टैंट ऐप्लिकेशन बनाएं
- किसी मौजूदा ऐप्लिकेशन में, Google Play Instant के लिए सहायता जोड़ना.
- कोडलैब: कई सुविधाओं वाला Instant App बनाना
- कई सुविधाओं वाले ऐप्लिकेशन को मॉड्यूलर बनाना.