चेतावनी: Google Play इंस्टैंट अब उपलब्ध नहीं होगा. दिसंबर 2025 से, इंस्टैंट ऐप्लिकेशन को Google Play से पब्लिश नहीं किया जा सकेगा और Google Play services के इंस्टैंट एपीआई काम नहीं करेंगे. उपयोगकर्ताओं को अब Play के ज़रिए, किसी भी तरीके से इंस्टैंट ऐप्लिकेशन नहीं दिखाए जाएंगे.
Google Play इंस्टैंट की सुविधा शुरू होने के बाद से, हम इसके इकोसिस्टम को बेहतर बनाने के लिए लगातार काम कर रहे हैं. साथ ही, डेवलपर के सुझावों के आधार पर, हम यह बदलाव कर रहे हैं.
उपयोगकर्ताओं की संख्या बढ़ाने के लिए, हम डेवलपर को अपने रेगुलर ऐप्लिकेशन या गेम पर उपयोगकर्ताओं को भेजने का सुझाव देते हैं. इसके लिए, डीपलिंक का इस्तेमाल करके, उपयोगकर्ताओं को ज़रूरत के हिसाब से किसी खास प्रोसेस या सुविधा पर रीडायरेक्ट करें.
अपने पहले इंस्टैंट ऐप्लिकेशन को बनाना लेख में, Google Play इंस्टैंट पर चलने वाले ऐप्लिकेशन सेट अप करने के तरीके के बारे में बताया गया है. यह तरीका, गेम पर भी लागू होता है. इस गाइड में, गेम के लिए सेट अप करने के कुछ खास तरीकों के बारे में बताया गया है.
Google Play इंस्टैंट के लिए गेम, Unity (Google Play इंस्टैंट Unity प्लग-इन के साथ या उसके बिना), Cocos2D, Android Studio या अपने हिसाब से बनाए गए इंजन का इस्तेमाल करके डेवलप किए जा सकते हैं.
इस गाइड में यह मान लिया गया है कि आपको पहले से ही पता है कि आपको किस तरह का गेमिंग अनुभव देना है. अगर आपको बेहतर क्वालिटी वाले गेम बनाने के लिए आइडिया और सबसे सही तरीके जानने हैं, तो Google Play इंस्टैंट पर गेम के लिए, यूएक्स के सबसे सही तरीके लेख पढ़ें.
इसके अलावा, Google Play इंस्टैंट पर चलने वाला गेम पब्लिश करने से पहले, तकनीकी ज़रूरी शर्तें वाली चेकलिस्ट की समीक्षा करें.
एंट्री पॉइंट तय करना
जिस ऐक्टिविटी में इंटेंट फ़िल्टर शामिल होता है वह 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 इंस्टैंट के अनुभव के लिए, वर्शन कोड को 1 से रीस्टार्ट करें.
- इंस्टॉल किए जा सकने वाले ऐप्लिकेशन के वर्शन कोड को 1000 जैसे बड़े नंबर से बढ़ाएं, ताकि आपके इंस्टैंट अनुभव के वर्शन नंबर को बढ़ाने के लिए काफ़ी जगह हो.
इंस्टैंट गेम और इंस्टॉल किए जा सकने वाले गेम को, Android Studio के दो अलग-अलग प्रोजेक्ट में डेवलप किया जा सकता है. हालांकि, ऐसा करने पर आपको Google Play पर अपना गेम पब्लिश करने के लिए, यह काम करना होगा:
- Android Studio के दोनों प्रोजेक्ट में, एक ही पैकेज का नाम इस्तेमाल करें.
- Google Play Console में, दोनों वैरिएंट को एक ही ऐप्लिकेशन में अपलोड करें.
अपने गेम का वर्शन सेट करने के बारे में ज़्यादा जानने के लिए, अपने ऐप्लिकेशन का वर्शन तय करना लेख पढ़ें.
एक्ज़ीक्यूशन एनवायरमेंट के साथ काम करने की सुविधा
अन्य ऐप्लिकेशन की तरह, Google Play इंस्टैंट पर मौजूद गेम, डिवाइस पर सीमित सैंडबॉक्स में चलते हैं. इस एक्ज़ीक्यूशन एनवायरमेंट के साथ काम करने की सुविधा देने के लिए, यहां दिए गए सेक्शन में बताए गए तरीके अपनाएं.
सादे टेक्स्ट वाले ट्रैफ़िक से ऑप्ट आउट करना
Google Play इंस्टैंट पर मौजूद गेम, एचटीटीपी ट्रैफ़िक के साथ काम नहीं करते. अगर आपका गेम, 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 इंस्टैंट के साथ काम करने वाले सैंडबॉक्स एनवायरमेंट को टारगेट करे. इस अपडेट को पूरा करने के लिए, अपने गेम के <manifest> एलिमेंट में android:targetSandboxVersion एट्रिब्यूट जोड़ें. यह कोड स्निपेट देखें:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
...
android:targetSandboxVersion="2" ...>
ज़्यादा जानकारी के लिए, targetSandboxVersion
एट्रिब्यूट के बारे में दस्तावेज़ देखें.
कैश मेमोरी या ऐप्लिकेशन डेटा की मौजूदगी पर निर्भर न रहना
आपका झटपट इस्तेमाल की सुविधा देने वाला ऐप्लिकेशन, उपयोगकर्ता के डिवाइस पर तब तक डाउनलोड रहता है, जब तक झटपट इस्तेमाल की सुविधा देने वाले ऐप्लिकेशन की कैश मेमोरी मिटाई नहीं जाती. ऐसा इन स्थितियों में होता है:
- डिवाइस में उपलब्ध मेमोरी कम होने की वजह से, झटपट इस्तेमाल की सुविधा देने वाले ऐप्लिकेशन की कैश मेमोरी को इकट्ठा किया जाता है.
- उपयोगकर्ता अपने डिवाइस को रीस्टार्ट करता है.
इनमें से कोई भी प्रोसेस होने पर, उपयोगकर्ता को आपके झटपट इस्तेमाल की सुविधा देने वाले ऐप्लिकेशन के साथ इंटरैक्ट करने के लिए, उसे फिर से डाउनलोड करना होगा.
अगर सिस्टम में स्टोरेज की जगह बहुत कम है, तो हो सकता है कि आपके झटपट इस्तेमाल की सुविधा देने वाले ऐप्लिकेशन का उपयोगकर्ता का डेटा, डिवाइस के स्टोरेज से हटा दिया जाए. इसलिए, हमारा सुझाव है कि उपयोगकर्ता के डेटा को समय-समय पर अपने गेम के सर्वर के साथ सिंक करें, ताकि उपयोगकर्ता की प्रोग्रेस बनी रहे.
अपने ऐप्लिकेशन का आकार कम करना
अन्य तरह के ऐप्लिकेशन के मुकाबले, Google Play इंस्टैंट पर मौजूद गेम के डाउनलोड साइज़ की सीमा 15 एमबी होती है. इस साइज़ का गेम बनाने के लिए, आपको अपने गेम की लॉजिक को फिर से फ़ैक्टर करना पड़ सकता है. इस सेक्शन में, आपके गेम के साइज़ को ऑप्टिमाइज़ करने में मदद करने वाले कुछ टूल और तकनीकों के बारे में बताया गया है.
टूल
यहां दिए गए टूल की मदद से, यह पता लगाया जा सकता है कि आपके गेम के साइज़ को बढ़ाने में किन चीज़ों का योगदान है:
- APK Analyzer: कंपाइल किए गए 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 इंस्टेंट के झटपट इस्तेमाल की सुविधा देने वाले ऐप्लिकेशन के अनुभव को ऑप्टिमाइज़ करना मुश्किल हो सकता है, ताकि आपका गेम 15 एमबी के एक APK में फ़िट हो जाए. इस समस्या को हल करने के लिए, अपने गेम को कई APK में बांटा जा सकता है. खिलाड़ी, मुख्य, बेस APK डाउनलोड करके खेलना शुरू करते हैं. जैसे-जैसे वे खेलते हैं, बाकी स्प्लिट APK, बैकग्राउंड में गेम के लिए उपलब्ध कराए जाते हैं.
उदाहरण के लिए, बेस APK में कोर गेम इंजन और लोडिंग स्क्रीन दिखाने के लिए ज़रूरी ऐसेट शामिल हो सकती हैं. बेस APK लॉन्च होने पर, वह लोडिंग स्क्रीन दिखाता है और तुरंत एक और स्प्लिट APK का अनुरोध करता है. इस स्प्लिट APK में गेम और लेवल का डेटा होता है. वह स्प्लिट APK उपलब्ध होने के बाद, अपनी ऐसेट को गेम इंजन में लोड कर सकता है और खिलाड़ी को वह कॉन्टेंट दे सकता है जिसकी उसे गेम शुरू करने के लिए ज़रूरत होती है.
यूएक्स के सबसे सही तरीके अपनाना
अपने गेम को इंस्टैंट अनुभव के साथ काम करने के लिए कॉन्फ़िगर करने के बाद, उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, यहां दिए गए सेक्शन में दिखाया गया लॉजिक जोड़ें.
64-बिट आर्किटेक्चर के साथ काम करने की सुविधा
Google Play पर पब्लिश किए गए ऐप्लिकेशन, 64-बिट आर्किटेक्चर के साथ काम करने चाहिए. अपने ऐप्लिकेशन का 64-बिट वर्शन जोड़ने से, परफ़ॉर्मेंस बेहतर होती है. साथ ही, 64-बिट वाले हार्डवेयर वाले डिवाइसों के लिए, आपका ऐप्लिकेशन तैयार हो जाता है. 64-बिट के साथ काम करने की सुविधा के बारे में ज़्यादा जानें.
यह देखना कि गेम, झटपट इस्तेमाल की सुविधा देने वाले ऐप्लिकेशन के साथ चल रहा है या नहीं
अगर आपके गेम का कुछ लॉजिक इस बात पर निर्भर करता है कि उपयोगकर्ता आपके झटपट इस्तेमाल की सुविधा देने वाले ऐप्लिकेशन में शामिल है या नहीं, तो isInstantApp() तरीके को कॉल करें. अगर फ़िलहाल चल रही प्रोसेस, झटपट इस्तेमाल की सुविधा देने वाला ऐप्लिकेशन है, तो यह तरीका true दिखाता है.
इस जांच से, यह पता लगाया जा सकता है कि आपके ऐप्लिकेशन को सीमित एक्ज़ीक्यूशन एनवायरमेंट में चलाने की ज़रूरत है या वह प्लैटफ़ॉर्म की सुविधाओं का फ़ायदा ले सकता है.
इंस्टॉलेशन का प्रॉम्प्ट दिखाना
अगर आपने Google Play इंस्टैंट का ट्रायल अनुभव बनाया है, तो किसी समय गेम को खिलाड़ी से अपने डिवाइस पर पूरा वर्शन इंस्टॉल करने के लिए कहना चाहिए. ऐसा करने के लिए, Android के लिए Google API में
showInstallPrompt()
तरीके का इस्तेमाल करें.
खिलाड़ी से इंस्टॉलेशन के लिए कब और कैसे कहना चाहिए, इस बारे में ज़्यादा जानने के लिए, देखें Google Play इंस्टैंट पर गेम के लिए, यूएक्स के सबसे सही तरीके लेख पढ़ें.
इंस्टॉल किए गए अनुभव में डेटा ट्रांसफ़र करना
अगर किसी खिलाड़ी को आपके ट्रायल अनुभव पसंद आता है, तो वह आपके गेम का पूरा वर्शन इंस्टॉल करने का फ़ैसला ले सकता है. उपयोगकर्ताओं को बेहतर उपयोगकर्ता अनुभव देने के लिए, यह ज़रूरी है कि खिलाड़ी की प्रोग्रेस, आपके झटपट इस्तेमाल की सुविधा देने वाले ऐप्लिकेशन से आपके गेम के पूरे वर्शन में ट्रांसफ़र हो जाए.
अगर आपके गेम में को targetSandboxVersion
पर सेट किया गया है 2, तो खिलाड़ी की प्रोग्रेस, आपके गेम के पूरे वर्शन में अपने-आप ट्रांसफ़र हो जाती है. नहीं तो, आपको खिलाड़ी की प्रोग्रेस से जुड़ा डेटा मैन्युअल तरीके से ट्रांसफ़र करना होगा. ऐसा करने के लिए, Cookie API - सैंपल ऐप्लिकेशन का इस्तेमाल करें
अन्य संसाधन
Google Play इंस्टैंट के बारे में ज़्यादा जानने के लिए, ये अन्य संसाधन देखें:
- कोडलैब: अपना पहला इंस्टैंट ऐप्लिकेशन बनाना
- किसी मौजूदा ऐप्लिकेशन में, Google Play इंस्टैंट के साथ काम करने की सुविधा जोड़ना.
- कोडलैब: कई सुविधाओं वाला इंस्टैंट ऐप्लिकेशन बनाना
- कई सुविधाओं वाले ऐप्लिकेशन को मॉड्यूल में बांटना.