चेतावनी: Google Play इंस्टैंट अब उपलब्ध नहीं होगा. दिसंबर 2025 से, इंस्टैंट ऐप्लिकेशन को Google Play से पब्लिश नहीं किया जा सकेगा और Google Play services के इंस्टैंट एपीआई काम नहीं करेंगे. उपयोगकर्ताओं को अब Play के ज़रिए, किसी भी तरीके से इंस्टैंट ऐप्लिकेशन नहीं दिखाए जाएंगे.
हम यह बदलाव, डेवलपर से मिले सुझावों के आधार पर कर रहे हैं. साथ ही, Google Play Instant के लॉन्च होने के बाद से, हम लगातार इस नेटवर्क को बेहतर बनाने के लिए निवेश कर रहे हैं.
उपयोगकर्ताओं की संख्या बढ़ाने के लिए, हम डेवलपर को अपने रेगुलर ऐप्लिकेशन या गेम पर उपयोगकर्ताओं को भेजने का सुझाव देते हैं. इसके लिए, डीपलिंक का इस्तेमाल करके, उपयोगकर्ताओं को ज़रूरत के हिसाब से किसी खास प्रोसेस या सुविधा पर रीडायरेक्ट करें.
Google Play झटपट पर ऐप्लिकेशन चलाने के लिए, उन्हें सेट अप करने का तरीका अपना पहला इंस्टैंट ऐप्लिकेशन बनाएं लेख में बताया गया है. यह तरीका, गेम पर भी लागू होता है. इस गाइड में, गेम के लिए सेटअप से जुड़े कुछ खास चरणों के बारे में बताया गया है.
Google Play झटपट के लिए गेम डेवलप करने के लिए, इन टूल का इस्तेमाल किया जा सकता है: Unity (Google Play Instant Unity प्लगिन के साथ या इसके बिना), Cocos2D, Android Studio या आपका कस्टम इंजन.
इस गाइड में यह मान लिया गया है कि आपको पहले से ही पता है कि आपको किस तरह का गेमिंग अनुभव देना है. अगर आपको बेहतर क्वालिटी वाले गेम बनाने के लिए, आइडिया और सबसे सही तरीके जानने हैं, तो Google Play Instant पर गेम के लिए यूज़र एक्सपीरियंस के सबसे सही तरीके पढ़ें.
इसके अलावा, Google Play Instant पर चलने वाला गेम पब्लिश करने से पहले, आपको तकनीकी ज़रूरी शर्तों की चेकलिस्ट देखनी चाहिए.
कोई एंट्री पॉइंट तय करना
नीचे दिए गए इंटेंट फ़िल्टर वाली गतिविधि, Google Play Instant की सुविधा के लिए एंट्री पॉइंट बन जाती है:
<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 Instant का इस्तेमाल करने से लेकर गेम को अपने डिवाइस पर डाउनलोड और इंस्टॉल करने तक का अनुभव पा सकते हैं. Android फ़्रेमवर्क, इस ट्रांज़िशन को ऐप्लिकेशन अपडेट मानता है.
यह पक्का करने के लिए कि आपने वर्शनिंग की सुझाई गई स्कीम का पालन किया है, इनमें से कोई एक तरीका अपनाएं:
- Google Play Instant के लिए, वर्शन कोड को 1 से रीस्टार्ट करें.
- इंस्टॉल किए जा सकने वाले ऐप्लिकेशन के वर्शन कोड को ज़्यादा संख्या में बढ़ाएं. जैसे, 1000. इससे यह पक्का किया जा सकेगा कि इंस्टैंट ऐप्लिकेशन के वर्शन नंबर को बढ़ाने के लिए, आपके पास काफ़ी जगह हो.
इंस्टॉल किए बिना खेले जा सकने वाले गेम और इंस्टॉल किए जा सकने वाले गेम को दो अलग-अलग Android Studio प्रोजेक्ट में डेवलप किया जा सकता है. हालांकि, ऐसा करने पर आपको Google Play पर अपना गेम पब्लिश करने के लिए, यह तरीका अपनाना होगा:
- दोनों Android Studio प्रोजेक्ट में एक ही पैकेज का नाम इस्तेमाल करें.
- Google Play Console में, दोनों वर्शन को एक ही ऐप्लिकेशन में अपलोड करें.
अपने गेम का वर्शन सेट करने के बारे में ज़्यादा जानने के लिए, अपने ऐप्लिकेशन का वर्शन तय करना लेख पढ़ें.
एक्ज़ीक्यूशन एनवायरमेंट के साथ काम करना
अन्य ऐप्लिकेशन की तरह, Google Play Instant पर मौजूद गेम भी डिवाइस पर सीमित सैंडबॉक्स में चलते हैं. इस एक्ज़ीक्यूशन एनवायरमेंट के साथ काम करने के लिए, यहां दिए गए सेक्शन में बताया गया तरीका अपनाएं.
क्लियरटेक्स्ट ट्रैफ़िक से ऑप्ट आउट करना
Google Play Instant पर मौजूद गेम, एचटीटीपी ट्रैफ़िक के साथ काम नहीं करते. अगर आपका गेम, Android 9 (एपीआई लेवल 28) या उसके बाद के वर्शन को टारगेट करता है, तो Android आपके गेम में डिफ़ॉल्ट रूप से क्लियरटेक्स्ट सपोर्ट की सुविधा बंद कर देता है.
हालांकि, अगर आपका गेम Android 8.1 (एपीआई लेवल 27) या उसके पहले के वर्शन को टारगेट करता है, तो आपको Network Security Config फ़ाइल बनानी होगी.
इस फ़ाइल में, 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 में बांटना
Google Play Instant के अनुभव को ऑप्टिमाइज़ करना मुश्किल हो सकता है, ताकि आपका गेम 15 एमबी के एक APK में फ़िट हो जाए. ऐसा तब भी हो सकता है, जब APK का साइज़ कम करने के लिए दिए गए सुझावों को लागू कर दिया गया हो. इस समस्या को हल करने के लिए, अपने गेम को कई APK में बांटा जा सकता है. खिलाड़ी, प्राइमरी और बेस APK डाउनलोड करके गेम खेलना शुरू करते हैं. जैसे-जैसे वे गेम खेलते हैं, वैसे-वैसे बाकी स्प्लिट APK बैकग्राउंड में गेम के लिए उपलब्ध होते जाते हैं.
उदाहरण के लिए, बेस एपीके में मुख्य गेम इंजन और लोडिंग स्क्रीन दिखाने के लिए ज़रूरी ऐसेट शामिल हो सकती हैं. बेसिक APK लॉन्च होने पर, यह लोडिंग स्क्रीन दिखाता है. साथ ही, तुरंत एक और स्प्लिट APK का अनुरोध करता है. इस स्प्लिट APK में गेम और लेवल का डेटा होता है. इसके बाद, स्प्लिट APK उपलब्ध हो जाता है. यह गेम इंजन में अपनी ऐसेट लोड कर सकता है. साथ ही, खिलाड़ी को गेम शुरू करने के लिए ज़रूरी कॉन्टेंट दे सकता है.
यूज़र एक्सपीरियंस के सबसे सही तरीके अपनाना
अपने गेम को इस तरह कॉन्फ़िगर करें कि वह झटपट इस्तेमाल करने की सुविधा के साथ काम करे. इसके बाद, उपयोगकर्ता को बेहतर अनुभव देने के लिए, यहां दिए गए सेक्शन में दिखाया गया लॉजिक जोड़ें.
64-बिट आर्किटेक्चर के साथ काम करना
Google Play पर पब्लिश किए गए ऐप्लिकेशन, 64-बिट आर्किटेक्चर के साथ काम करने चाहिए. अपने ऐप्लिकेशन का 64-बिट वर्शन जोड़ने से, परफ़ॉर्मेंस बेहतर होती है. साथ ही, आपको 64-बिट वाले हार्डवेयर वाले डिवाइसों के लिए ऐप्लिकेशन तैयार करने में मदद मिलती है. 64-बिट सपोर्ट के बारे में ज़्यादा जानें.
देखें कि गेम में इंस्टैंट एक्सपीरियंस की सुविधा काम कर रही है या नहीं
अगर आपके गेम का कुछ लॉजिक इस बात पर निर्भर करता है कि उपयोगकर्ता आपके इंस्टैंट गेम में शामिल है या नहीं, तो isInstantApp() तरीके को कॉल करें. अगर फ़िलहाल चल रही प्रोसेस, इंस्टैंट एक्सपीरियंस है, तो यह तरीका true दिखाता है.
इस जांच से, यह तय किया जा सकता है कि आपके ऐप्लिकेशन को सीमित एक्ज़ीक्यूशन एनवायरमेंट में चलाने की ज़रूरत है या वह प्लैटफ़ॉर्म की सुविधाओं का फ़ायदा ले सकता है.
ऐप्लिकेशन इंस्टॉल करने का अनुरोध दिखाना
अगर आपने Google Play झटपट आज़माने की सुविधा वाला गेम बनाया है, तो किसी समय पर गेम को खिलाड़ी से यह अनुरोध करना चाहिए कि वह अपने डिवाइस पर गेम का पूरा वर्शन इंस्टॉल करे. इसके लिए, Google APIs for Android में showInstallPrompt() तरीके का इस्तेमाल करें.
खिलाड़ी को गेम इंस्टॉल करने के लिए कब और कैसे प्रॉम्प्ट करना चाहिए, इस बारे में ज़्यादा जानने के लिए, Google Play Instant पर गेम के लिए यूज़र एक्सपीरियंस के सबसे सही तरीके देखें.
इंस्टॉल किए गए ऐप्लिकेशन में डेटा ट्रांसफ़र करना
अगर किसी खिलाड़ी को आपके गेम का ट्रायल वर्शन पसंद आता है, तो वह आपके गेम का पूरा वर्शन इंस्टॉल कर सकता है. उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, यह ज़रूरी है कि खिलाड़ी की प्रोग्रेस को इंस्टैंट गेम से आपके गेम के पूरे वर्शन में ट्रांसफ़र किया जाए.
अगर आपके गेम में 2 का targetSandboxVersion तय किया गया है, तो खिलाड़ी की प्रोग्रेस अपने-आप आपके गेम के पूरे वर्शन में ट्रांसफ़र हो जाती है. इसके अलावा, आपको खिलाड़ी की प्रोग्रेस से जुड़ा डेटा मैन्युअल तरीके से ट्रांसफ़र करना होगा. इसके लिए, Cookie API - sample app का इस्तेमाल करें
अन्य संसाधन
Google Play Instant के बारे में ज़्यादा जानने के लिए, इन अतिरिक्त संसाधनों पर जाएं:
- कोडलैब: अपना पहला इंस्टैंट ऐप्लिकेशन बनाएं
- किसी मौजूदा ऐप्लिकेशन में Google Play Instant की सुविधा जोड़ें.
- कोडलैब: कई सुविधाओं वाला झटपट ऐप्लिकेशन बनाना
- कई सुविधाओं वाले ऐप्लिकेशन को मॉड्यूलर बनाना.