মূল ধারণা | আপনার উন্নয়ন পরিবেশ সেট আপ করুন | একটি RE SDK তৈরি করুন | RE SDK ব্যবহার করুন | পরীক্ষা, এবং বিতরণের জন্য বিল্ডিং |
মূল ধারণা | আপনার উন্নয়ন পরিবেশ সেট আপ করুন | একটি RE SDK তৈরি করুন | RE SDK ব্যবহার করুন | পরীক্ষা, এবং বিতরণের জন্য বিল্ডিং |
মূল ধারণা
এই বিভাগে SDK রানটাইম আর্কিটেকচার, রানটাইম-সক্ষম SDKগুলি কীভাবে ইনস্টল করা হয়, পিছনের দিকে সামঞ্জস্যপূর্ণতা এবং কীভাবে বিদ্যমান SDKগুলিকে SDK রানটাইমে স্থানান্তর করা যায় তা ব্যাখ্যা করে৷
শব্দকোষ
- রানটাইম-সক্ষম SDK (RE SDK) : SDK রানটাইম পরিবেশে চালানোর জন্য এবং ইন্টার-প্রসেস কমিউনিকেশনের (IPC) মাধ্যমে অ্যাপের সাথে যোগাযোগ করার জন্য তৈরি একটি SDK।
- রানটাইম-সচেতন SDK (RA SDK) : একটি নন-রানটাইম-সক্ষম SDK, অ্যাপের সাথে স্ট্যাটিকভাবে লিঙ্ক করা, যেটিতে আপনার বিদ্যমান SDK কোডের পাশাপাশি আপনার রানটাইম-সক্ষম SDK-এ কল করার জন্য নতুন কোড থাকতে পারে।
- এটি কখনও কখনও স্ট্যাটিক-লিঙ্কড বা স্ট্যাটিক SDK হিসাবেও উল্লেখ করা হয়।
- শিম : একটি জেটপ্যাক লাইব্রেরি যা প্রক্রিয়া বা আন্তঃপ্রক্রিয়া যোগাযোগ (IPC) জুড়ে বিমূর্ত যোগাযোগে সাহায্য করে এবং একই অ্যাপ-SDK ইন্টারফেস বজায় রাখে।
SDK রানটাইম আর্কিটেকচার
SDK রানটাইম একটি ক্লায়েন্ট-সার্ভার ধরনের মডেল গ্রহণ করে।
প্রধান পার্থক্য হল "ক্লায়েন্ট" (অ্যাপ) এবং "সার্ভার" (রানটাইম-সক্ষম SDKs) একই ডিভাইসে চলে এবং এই যোগাযোগ প্রক্রিয়া জুড়ে ঘটে।
এই চ্যালেঞ্জগুলির সাথে সাহায্য করার জন্য, আমরা SDK রানটাইমের মধ্যে অ্যাপ-SDK ইন্টিগ্রেশনকে সহজ করার জন্য নিম্নলিখিত জেটপ্যাক লাইব্রেরি এবং সরঞ্জামগুলি তৈরি করেছি:
- শিম লাইব্রেরি: র্যাপার লাইব্রেরি (বা শিম ) প্রক্রিয়া বা ইন্টার-প্রসেস কমিউনিকেশন (আইপিসি) জুড়ে বিমূর্ত যোগাযোগে সহায়তা করে। এটি একই অ্যাপ-SDK ইন্টারফেস বজায় রাখতে সাহায্য করে।
- ব্যাককমপ্যাট লাইব্রেরি: এই লাইব্রেরিটি পিছন দিকের সামঞ্জস্য পরিচালনা করে, নিশ্চিত করে যে আপনার SDK সামঞ্জস্যপূর্ণ কিনা তা নির্বিশেষে SDK রানটাইম উপলব্ধ কিনা।
- UI লাইব্রেরি: আমরা দূরবর্তী উপস্থাপনা পরিচালনা করার জন্য লাইব্রেরিগুলিও সরবরাহ করি, যেমন রানটাইম-সক্ষম SDK থেকে UI আনা বা আকার পরিবর্তন করা এবং ভিউগুলির রিলেআউট।
ইনস্টলেশন প্রবাহ পরিবর্তন
আপনি যখন অ্যান্ড্রয়েড স্টুডিও বা অন্যান্য টুলে আপনার রানটাইম-সক্ষম SDK তৈরি করেন, তখন আপনি একটি Android SDK বান্ডেল (ASB), রানটাইম-সক্ষম SDK-এর জন্য একটি প্রকাশনার ফর্ম্যাট তৈরি করেন।
bundletool আপনার রানটাইম-সক্ষম SDK-এর জন্য একটি APK তৈরি করতে ASB-কে প্রক্রিয়া করে: এই পৃথক APK-এ আপনার SDK কোড রয়েছে কিন্তু কোনও অ্যাপ কোড নেই।
অ্যাপের ম্যানিফেস্ট ফাইলটি আপনার রানটাইম-সক্ষম SDK নাম এবং সংস্করণের উপর নির্ভরতা ঘোষণা করে এবং এই নির্ভরতা ইনস্টলার অ্যাপ দ্বারা সমাধান করা হয়।
একবার ইনস্টলার দ্বারা SDK APK পাওয়া গেলে, ইনস্টলেশনটি SDK APK ইনস্টলেশনের মাধ্যমে শুরু হয়। সাফল্যের পরে, এটি অ্যাপের APK ইনস্টল করে অনুসরণ করে।
অ্যাপ্লিকেশানটি Android 13 এবং তার আগের এবং SDK রানটাইম সমর্থন করে না এমন ডিভাইসগুলিতে ইনস্টল করা থাকলে প্রবাহটি আলাদা। এই পরিস্থিতিতে, স্টোরটি আপনার রানটাইম-সক্ষম SDK এবং অ্যাপ কোড উভয়ই সমন্বিত একটি একক APK ইনস্টল করে। আরও জানতে বিতরণ বিভাগ পড়ুন।
যখনই কোনো অ্যাপ উৎপাদনে এই SDK-এর উপর নির্ভর করে, অ্যাপ স্টোর এই ASB থেকে সঠিক SDK APK তৈরি করে এবং এটি ইনস্টল করে।
পিছনের সামঞ্জস্য
যেহেতু Android 14 এ SDK রানটাইম চালু করা হয়েছে, তাই আমাদের SDK বা অ্যাপ ডেভেলপারদের জন্য ওভারহেড প্রবর্তন না করেই আগের সংস্করণগুলিকে সমর্থন করতে হবে।
অ্যান্ড্রয়েড 13 এবং তার আগের কম্প্যাটিবিলিটি পরিচালনা করতে, আমরা একটি জেটপ্যাক লাইব্রেরি চালু করেছি যা SDK রানটাইমের জন্য ডিভাইস সমর্থন নির্বিশেষে আপনার রানটাইম-সক্ষম SDK চালাতে পারে।
এই নির্দেশিকা অনুসরণ করলে ডিফল্টরূপে আপনার রানটাইম-সক্ষম SDK ব্যাকওয়ার্ড সামঞ্জস্যপূর্ণ হয়, এবং আপনার আর কোন পদক্ষেপ নেওয়া উচিত নয়।
আমরা প্রাসঙ্গিক পর্যায়ে পিছনের সামঞ্জস্যের সাথে সংযুক্ত ক্রিয়াগুলি কী হাইলাইট করি, তবে সাধারণ শর্তে, আপনার নিশ্চিত হওয়া উচিত যে আপনি সঠিক নির্ভরতা ঘোষণা করেছেন এবং আপনি যখনই প্রযোজ্য তখন *Compat
ক্লাসগুলি ব্যবহার করছেন।
বিদ্যমান SDKগুলি স্থানান্তর করুন৷
আপনার যদি একটি বিদ্যমান SDK থাকে যা আপনি রানটাইমে স্থানান্তর করতে চান তবে আপনাকে একবারে আপনার সম্পূর্ণ কোডবেস রিফ্যাক্টর করতে হবে না। পরিবর্তে, আপনি বর্তমান SDK লজিককে নতুন রানটাইম-সক্ষম SDK-এ ক্রমবর্ধমানভাবে স্থানান্তর করতে বেছে নিতে পারেন।
একটি বিদ্যমান SDK SDK রানটাইমে স্থানান্তর করতে আমরা নিম্নলিখিত তিনটি ধাপের সুপারিশ করি:
- একটি ট্রানজিশন পিরিয়ড রানটাইম-সক্ষম SDK এর সাথে একটি কাউন্টারপার্ট পুরু রানটাইম-সচেতন SDK তৈরি করা। এটি আপনাকে আপনার বিদ্যমান SDK থেকে ব্যবসার যুক্তিকে ক্রমবর্ধমানভাবে স্থানান্তর করতে দেয় এবং আপনাকে A/B পরীক্ষার জন্য একটি টেস্টিং প্ল্যাটফর্ম দেয়
- সমস্ত বিদ্যমান SDK ব্যবসায়িক যুক্তিগুলিকে একটি দীর্ঘস্থায়ী অবস্থায় নিয়ে যাওয়া একটি পাতলা রানটাইম-সচেতন SDK সহ অ্যাপ স্থানান্তর সহজ করতে
- একটি পাতলা রানটাইম-সচেতন SDK ছাড়াই সরাসরি আপনার রানটাইম-সক্ষম SDK ব্যবহার করতে সম্পূর্ণ মাইগ্রেশন সহ আগ্রহী অ্যাপগুলিকে সমর্থন করা
পর্যায় 1 - ট্রানজিশন পিরিয়ড: ঘন রানটাইম-সচেতন SDK
আপনি আপনার রানটাইম-সচেতন SDK-এ আপনার ব্যবসার কিছু যুক্তি রাখা বেছে নিয়ে শুরু করতে পারেন। আমরা এটিকে একটি পুরু রানটাইম-সচেতন SDK বা ইন-অ্যাপ র্যাপার বলি।
এই পদ্ধতিটি আপনাকে একটি নতুন নির্মিত রানটাইম-সক্ষম SDK-এর পাশাপাশি স্ট্যাটিক অ্যাপ লাইব্রেরিতে আপনার SDK-এর সমস্ত বা কিছু ক্ষমতা রাখতে দেয়।
এটি আপনাকে ক্রমবর্ধমানভাবে রানটাইম-সক্ষম SDK-এ আপনার ব্যবহারের ক্ষেত্রে স্থানান্তর করতে এবং আপনার বিদ্যমান SDK-এর বিরুদ্ধে আপনার রানটাইম-সক্ষম SDK পরীক্ষা করতে দেয়।
এই পর্যায়ে, অ্যাপ ডেভেলপারকে তারা কীভাবে আপনার SDK ব্যবহার করে তাতে কিছু পরিবর্তন করতে হবে না, কারণ এটি আপনার স্ট্যাটিক অ্যাপ লাইব্রেরি (রানটাইম-সচেতন SDK) যা আপনার রানটাইম-সচেতন SDK ব্যবহার করার জন্য প্রয়োজনীয় কাজ করে।
পর্যায় 2 - স্থির অবস্থা: পাতলা রানটাইম-সচেতন SDK
মোটা রানটাইম-সচেতন SDK-এর বিপরীতে, একটি পাতলা মোড়ক, বা পাতলা রানটাইম-সচেতন SDK (পাতলা RA_SDK), আপনার স্ট্যাটিক্যালি লিঙ্ক করা লাইব্রেরি SDK-এ শুধুমাত্র API অনুবাদ এবং রানটাইম-সক্ষম SDK কলিং কোড ধারণ করে।
এই পর্যায়ে, আপনার স্ট্যাটিক অ্যাপ লাইব্রেরি SDK থেকে এবং আপনার রানটাইম-সক্ষম SDK-এ আপনার সমস্ত SDK কোড স্থানান্তরিত করা উচিত ছিল৷
অ্যাপ ডেভেলপারদের ফেজ 1 থেকে কোনো পরিবর্তন করতে হবে না কারণ আপনার ইন-অ্যাপ পাতলা রানটাইম-সচেতন SDK SDK রানটাইমের মধ্যে আপনার রানটাইম-সক্ষম SDK-এ কলিং পরিচালনা করে।
পর্যায় 3 - সম্পূর্ণ মাইগ্রেশন
এই চূড়ান্ত পর্যায়ে, আপনি আপনার SDK-এর সমস্ত ক্ষমতা রানটাইম-সক্ষম SDK-এ স্থানান্তরিত করেছেন এবং অ্যাপ থেকে সমস্ত স্ট্যাটিক লাইব্রেরি সরিয়ে দিয়েছেন।
এই মুহুর্তে, আপনার অ্যাপ ক্লায়েন্টদের আর আপনার লাইব্রেরিগুলিকে তাদের বিল্ডে অন্তর্ভুক্ত করার দরকার নেই, তবে শুধুমাত্র ম্যানিফেস্টে SDK নির্ভরতা তালিকাভুক্ত করুন এবং তাদের অ্যাপ কোডে SDK কলগুলি অন্তর্ভুক্ত করুন৷
SDK কলগুলি সিস্টেমের মাধ্যমে SDK রানটাইমে রুট করা হয়, যেখানে আপনার রানটাইম-সক্ষম SDK স্বয়ংক্রিয়ভাবে লোড হয়৷
ধাপ 2 : আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করুন