Key concepts | Set up your development environment | Build an RE SDK | Consume the RE SDK | Testing, and building for distribution |
मुख्य सिद्धांत
इस सेक्शन में SDK टूल के रनटाइम आर्किटेक्चर, रनटाइम के साथ काम करने वाले SDK टूल को इंस्टॉल करने का तरीका, और पुराने सिस्टम के साथ काम करने की सुविधा के बारे में बताया गया है. साथ ही, मौजूदा SDK टूल को SDK टूल के रनटाइम पर माइग्रेट करने का तरीका भी बताया गया है.
शब्दावली
- रनटाइम के साथ काम करने वाला एसडीके (आरई SDK टूल): यह SDK टूल के रनटाइम में चलने के लिए बनाया गया SDK टूल होता है इंटर-प्रोसेस कम्यूनिकेशन पर ऐप्लिकेशन से संपर्क करें और (आईपीसी).
- रनटाइम-अवेयर SDK (RA SDK टूल): एक ऐसा SDK टूल जिसके साथ रनटाइम चालू नहीं होता, जिसे ऐप्लिकेशन से लिंक किया जाता है
स्टैटिक रूप से, इसमें आपके मौजूदा SDK कोड के साथ-साथ, रनटाइम के साथ काम करने वाले SDK टूल में कॉल करने के लिए नया कोड भी शामिल हो सकता है.
- इसे कभी-कभी स्टैटिक तरीके से लिंक किया गया या स्टैटिक SDK भी कहा जाता है.
- Shim: ऐसी Jetpack लाइब्रेरी जो अलग-अलग विषयों पर ऐब्स्ट्रैक्ट बातचीत करने में मदद करती है या इंटर-प्रोसेस कम्यूनिकेशन (आईपीसी) के तौर पर काम करता है और उसे ऐप्लिकेशन-SDK टूल का इंटरफ़ेस.
SDK टूल का रनटाइम आर्किटेक्चर
SDK टूल का रनटाइम, client-server टाइप काम नहीं कर रहा है.
मुख्य अंतर यह है कि "क्लाइंट" (ऐप्लिकेशन) और "सर्वर" (runtime-enabled SDK टूल) एक ही डिवाइस पर काम करते हैं और यह कम्यूनिकेशन सभी प्रोसेस के बीच होता है.
इन चुनौतियों से निपटने के लिए, हमने ये तैयार किए हैं: आसानी से इस्तेमाल करने के लिए Jetpack लाइब्रेरी और टूल SDK टूल के रनटाइम में ऐप्लिकेशन और SDK टूल का इंटिग्रेशन:
- Shim लाइब्रेरी: रैपर लाइब्रेरी (या शिम) ऐब्स्ट्रैक्ट मदद करती है या इंटर-प्रोसेस कम्यूनिकेशन (आईपीसी). यह भी ऐप्लिकेशन-SDK टूल के इंटरफ़ेस को एक जैसा बनाए रखने में मदद करता है.
- बैककंपैट लाइब्रेरी: यह लाइब्रेरी, पुराने सिस्टम के साथ काम करने की सुविधा को हैंडल करती है. इसमें यह पक्का करना ज़रूरी है कि आपका SDK टूल साथ काम करता हो, भले ही SDK टूल का रनटाइम उपलब्ध हो या नहीं.
- यूज़र इंटरफ़ेस (यूआई) लाइब्रेरी: हम रिमोट प्रज़ेंटेशन को मैनेज करने के लिए भी लाइब्रेरी उपलब्ध कराते हैं, जैसे, रनटाइम के साथ काम करने वाले SDK टूल से यूज़र इंटरफ़ेस (यूआई) फ़ेच करना या साइज़ बदलना और भेजना देखे जाने की संख्या.
इंस्टॉल करने के तरीके में बदलाव
Android Studio या दूसरे टूल में रनटाइम के साथ काम करने वाला SDK टूल बनाने पर, आपको एक बनाएं Android SDK टूल का बंडल (ASB), रनटाइम के साथ काम करने वाले एसडीके के लिए पब्लिश किया जाने वाला फ़ॉर्मैट है.
bundletool एएसबी को प्रोसेस करता है का इस्तेमाल करें: इस अलग APK में SDK टूल का कोड है, लेकिन ऐप्लिकेशन कोड मौजूद नहीं है.
ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल, रनटाइम के साथ काम करने वाले आपके SDK टूल के नाम पर डिपेंडेंसी का एलान करती है और वर्शन है और इस डिपेंडेंसी को इंस्टॉलर ऐप्लिकेशन के ज़रिए हल किया जाता है.
इंस्टॉलर से SDK टूल के APK का डेटा मिलने के बाद, इंस्टॉल करने की शुरुआत SDK APK इंस्टॉल करना. सफल होने पर, यह ऐप्लिकेशन के APK को इंस्टॉल करता है.
अगर ऐप्लिकेशन Android 13 और उससे पहले के वर्शन वाले डिवाइसों पर इंस्टॉल किया गया है, तो फ़्लो अलग-अलग होता है SDK टूल के रनटाइम के साथ काम नहीं करने वाले डिवाइस. इस स्थिति में, स्टोर एक ऐसा APK जिसमें आपके रनटाइम के साथ काम करने वाला SDK टूल और ऐप्लिकेशन कोड, दोनों मौजूद हों. ज़्यादा जानने के लिए, डिस्ट्रिब्यूशन सेक्शन पढ़ें.
जब भी कोई ऐप्लिकेशन प्रोडक्शन में इस SDK टूल पर निर्भर होता है, तो ऐप स्टोर इस ASB से सही SDK APK इंस्टॉल करके उसे इंस्टॉल करता है.
पुराने सिस्टम के साथ काम करने की सुविधा
Android 14 में SDK टूल का रनटाइम आने की वजह से, हमें पुराने वर्शन के साथ काम करता है.
Android 13 और उससे पहले के वर्शन पर, पुराने सिस्टम के साथ काम करने की सुविधा को मैनेज करने के लिए, हमने Jetpack लाइब्रेरी लॉन्च की है. यह आपके रनटाइम के साथ काम करने वाले एसडीके को आसानी से चला सकती है. भले ही, किसी भी डिवाइस पर SDK टूल का रनटाइम ठीक से काम करता हो.
इस गाइड को पढ़ने से, रनटाइम के साथ काम करने वाले आपके SDK टूल को डिफ़ॉल्ट रूप से पुराने सिस्टम के साथ काम करने की सुविधा मिलती है. इसके लिए, आपको कुछ और करने की ज़रूरत नहीं है.
पुराने सिस्टम के साथ काम करने की सुविधा से जुड़ी कार्रवाइयों को काम के स्टेज पर हाइलाइट किया जाता है. हालांकि, सामान्य शब्दों में, आपको यह पक्का करना चाहिए कि आपने सही डिपेंडेंसी का एलान किया हो. साथ ही, जहां भी लागू हो वहां *Compat
क्लास का इस्तेमाल किया जा रहा हो.
मौजूदा SDK टूल माइग्रेट करें
अगर आपके पास कोई मौजूदा SDK टूल है, जिसे आपको रनटाइम पर माइग्रेट करना है, तो आपके पास आपके पूरे कोड बेस को एक ही बार में रीफ़ैक्टर के तौर पर इस्तेमाल किया जा सकता है. इसके बजाय, आपके पास SDK टूल के मौजूदा लॉजिक को, रनटाइम के साथ काम करने वाले नए SDK टूल पर माइग्रेट करने का विकल्प होता है.
हमारा सुझाव है कि किसी मौजूदा SDK टूल को SDK टूल में माइग्रेट करने के लिए, ये तीन चरण पूरे करें रनटाइम:
- रनटाइम के साथ काम करने वाले, ट्रांज़िशन की अवधि के साथ-साथ, रनटाइम के बारे में ज़्यादा जानकारी देने वाला SDK टूल बनाना. इसकी मदद से, अपने मौजूदा SDK टूल से कारोबारी लॉजिक को तेज़ी से माइग्रेट किया जा सकता है. साथ ही, आपको A/B टेस्टिंग के लिए टेस्टिंग प्लैटफ़ॉर्म मिल सकता है
- ऐप्लिकेशन के माइग्रेशन को आसान बनाने के लिए, SDK टूल के सभी मौजूदा बिज़नेस लॉजिक को एक स्थिर स्थिति पर ट्रांसफ़र करना
- रनटाइम के साथ काम करने वाले एसडीके को सीधे तौर पर इस्तेमाल करने के लिए, पूरी तरह माइग्रेट करने में दिलचस्पी रखने वाले ऐप्लिकेशन के लिए, रनटाइम की जानकारी वाले SDK टूल का इस्तेमाल करना आसान नहीं है
पहला चरण - ट्रांज़िशन अवधि: रनटाइम के बारे में जानकारी रखने वाला SDK टूल
रनटाइम के बारे में जानकारी देने वाले SDK टूल में, अपने कारोबार के कुछ लॉजिक को रखने का विकल्प चुनकर शुरुआत की जा सकती है. हम इसे रनटाइम के बारे में जानकारी देने वाला SDK टूल या इन-ऐप्लिकेशन रैपर कहते हैं.
इस तरीके से, आपको SDK टूल की सभी या कुछ सुविधाओं को स्टैटिक ऐप्लिकेशन लाइब्रेरी, और रनटाइम के साथ काम करने वाला नया SDK टूल.
इससे, इस्तेमाल के उदाहरणों को रनटाइम के साथ चलने वाले वर्शन में माइग्रेट किया जा सकता है साथ ही, रनटाइम के साथ काम करने वाले SDK टूल की जांच करें.
इस चरण में, ऐप्लिकेशन डेवलपर को अपने काम करने के तरीके में कुछ भी बदलाव करने की ज़रूरत नहीं है इस्तेमाल करें, क्योंकि यह आपकी स्टैटिक ऐप्लिकेशन लाइब्रेरी (रनटाइम अवेयर SDK) है यह आपके रनटाइम-अवेयर SDK का इस्तेमाल करने के लिए ज़रूरी है.
दूसरा चरण - स्थिर स्थिति: रनटाइम के बारे में जानकारी देने वाला SDK टूल
रनटाइम के बारे में ज़्यादा जानकारी देने वाले SDK टूल के मुकाबले, थिन रैपर या थिन रनटाइम अवेयर SDK टूल होता है. (पतला RA_SDK टूल), इसमें सिर्फ़ एपीआई अनुवाद और रनटाइम के साथ काम करने वाली SDK टूल की कॉलिंग शामिल है कोड को स्टैटिक रूप से लिंक किए गए लाइब्रेरी SDK टूल में डालें.
इस चरण में, आपको अपने स्टैटिक ऐप्लिकेशन लाइब्रेरी SDK टूल और रनटाइम के साथ काम करने वाले SDK टूल में जोड़ सकते हैं.
ऐप्लिकेशन डेवलपर को पहले चरण में कोई बदलाव करने की ज़रूरत नहीं है, क्योंकि आपके इन-ऐप्लिकेशन थिन रनटाइम अवेयर SDK टूल के ज़रिए, SDK टूल में रनटाइम के साथ काम करने वाले आपके SDK टूल में कॉल करने की सुविधा हैंडल की जाती है रनटाइम.
तीसरा चरण - माइग्रेट करना
इस आखिरी चरण में, आपने अपने SDK टूल की सभी सुविधाओं को रनटाइम के साथ काम करने वाला SDK टूल इस्तेमाल किया और ऐप्लिकेशन से सभी स्टैटिक लाइब्रेरी हटा दीं.
इस समय, आपके ऐप्लिकेशन क्लाइंट को अपनी लाइब्रेरी शामिल करने की ज़रूरत नहीं होगी मेनिफ़ेस्ट में सिर्फ़ SDK टूल डिपेंडेंसी शामिल करनी होंगी. साथ ही, फ़ाइल में SDK कॉल की जानकारी, उनके ऐप्लिकेशन कोड में दिखती है.
SDK टूल के कॉल को सिस्टम से, SDK टूल के रनटाइम में रूट किया जाता है. यहां रनटाइम के साथ काम करने वाला, आपका SDK टूल अपने-आप लोड हो जाता है.