SDK এক্সটেনশন মডিউল ডিভাইসের এক্সটেনশন SDK স্তর নির্ধারণ করে এবং এক্সটেনশন SDK স্তরের অনুসন্ধান করার জন্য অ্যাপগুলির জন্য API প্রদান করে৷ এই মডিউলটি আপডেটযোগ্য, মানে এটি স্বাভাবিক অ্যান্ড্রয়েড রিলিজ চক্রের বাইরে কার্যকারিতার আপডেট পেতে পারে।
SDK এক্সটেনশন এর জন্য দায়ী:
- ডিভাইসের এক্সটেনশন SDK স্তরের সিদ্ধান্ত নেওয়া।
- এক্সটেনশন SDK স্তরের অনুসন্ধান করার জন্য অ্যাপগুলির জন্য API প্রদান করা।
- (Android 12 শুরু হচ্ছে)
BOOTCLASSPATH
,DEX2OATBOOTCLASSPATH
, এবংSYSTEMSERVERCLASSPATH
এনভায়রনমেন্ট ভেরিয়েবলের মান নির্ধারণ করা।
মডিউল বিন্যাস
SDK এক্সটেনশন মডিউল ( com.android.sdkext
) APEX ফরম্যাটে এবং Android 11 বা উচ্চতর সংস্করণে চলমান ডিভাইসগুলির জন্য উপলব্ধ৷
প্যাকেজ বিন্যাস
SDK এক্সটেনশন মডিউল ( com.google.android.sdkext
) APEX ফর্ম্যাটে এবং এতে নিম্নলিখিত উপাদানগুলি রয়েছে:
(Android 12 শুরু হচ্ছে)
bin/derive_classpath
: একটি নেটিভ বাইনারি যা ডিভাইস বুট প্রক্রিয়ার প্রথম দিকে চলে। এটি সিস্টেম এবং অন্যান্য মডিউলগুলি থেকে পৃথক ক্লাসপাথ কনফিগার ফাইলগুলি পড়ে, সেগুলিকে একত্রিত করে এবংCLASSPATH
এনভায়রনমেন্ট ভেরিয়েবলের সংজ্ঞা নির্ধারণ করে।bin/derive_sdk
: একটি নেটিভ বাইনারি যা ডিভাইস বুট প্রক্রিয়ার প্রথম দিকে চলে এবং এক্সটেনশন SDK সম্পর্কিত সিস্টেম বৈশিষ্ট্য সেট করতে অন্যান্য মডিউলের মেটাডেটা পড়ে (উদাহরণস্বরূপ,build.version.extensions.r
)।javalib/framework-sdkextension.jar
: এই ফাইলটি বুটক্লাসপাথে রয়েছে যা এক্সটেনশন SDK স্তরের অনুসন্ধান করার জন্য এপিআইগুলিকে অ্যাপে প্রকাশ করে।
এক্সটেনশন SDK স্তর আহরণ
derive_sdk
প্রোগ্রাম প্রতিটি APEX মডিউলের মধ্যে etc/sdkinfo.binarypb
সাবপাথে বাইনারি প্রোটোবাফ ফাইল হিসাবে সংরক্ষিত মেটাডেটা পড়ে। protobuf গঠন সম্পর্কে বিস্তারিত জানার জন্য, protobuf
ফাইল পড়ুন.
এক্সটেনশন SDK স্তর পড়ুন
SDK এক্সটেনশন মডিউল android.os.ext
প্যাকেজে একটি SdkExtensions
জাভা ক্লাস প্রকাশ করে। একটি SDK এক্সটেনশনের সংস্করণ পড়তে getExtensionVersion(int)
পদ্ধতি ব্যবহার করুন (উদাহরণস্বরূপ, getExtensionVersion(Build.VERSION_CODES.R)
)।
ক্লাসপাথ বের করুন
derive_classpath
পরিষেবাটি /system/etc/classpaths/
এবং /apex/*/etc/classpaths/
-এ পৃথক কনফিগারেশন ফাইল পড়ে এবং মার্জ করে। প্রতিটি কনফিগারেশন একটি প্রোটো বাইনারি বিন্যাসে classpaths.proto
থেকে protobuf বার্তা সংরক্ষণ করে। সঠিক মার্জিং অ্যালগরিদম যা ক্লাসপাথ এন্ট্রিগুলির ক্রম নির্ধারণ করে তা derive_classpath.cpp
এ বর্ণনা করা হয়েছে এবং সময়ের সাথে সাথে পরিবর্তিত হতে পারে।