SDK এক্সটেনশন মডিউল ডিভাইসের এক্সটেনশন SDK লেভেল নির্ধারণ করে এবং এক্সটেনশন SDK লেভেল কোয়েরি করার জন্য অ্যাপকে API প্রদান করে। এই মডিউলটি আপডেট করা যাবে, অর্থাৎ এটি সাধারণ Android রিলিজ চক্রের বাইরেও কার্যকারিতার আপডেট পেতে পারে।
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 লেভেল কোয়েরি করার জন্য অ্যাপে API এক্সপোজ করে।
এক্সটেনশন SDK লেভেল পাওয়া
derive_sdk প্রোগ্রাম প্রতিটি APEX মডিউলের মধ্যে etc/sdkinfo.binarypb সাবপাথে বাইনারি প্রোটোবাফ ফাইল হিসেবে সেভ করা মেটাডেটা পড়ে। protobuf স্ট্রাকচার সম্পর্কে
আরও জানতে, protobuf
ফাইল দেখুন।
এক্সটেনশন SDK লেভেল পড়ুন
SDK এক্সটেনশন মডিউল android.os.ext প্যাকেজে একটি
SdkExtensions
java ক্লাস এক্সপোজ করে। SDK এক্সটেনশনের ভার্সন পড়তে getExtensionVersion(int)
পদ্ধতি ব্যবহার করুন (যেমন,
getExtensionVersion(Build.VERSION_CODES.R))।
ক্লাসপথ তৈরি করা
derive_classpath পরিষেবা /system/etc/classpaths/ এবং /apex/*/etc/classpaths/-এ আলাদা আলাদা কনফিগ ফাইল পড়ে এবং মার্জ করে। প্রতিটি কনফিগারেশন
classpaths.proto থেকে প্রোটোবাফ মেসেজ
প্রোটো বাইনারি ফর্ম্যাটে সেভ করে। ক্লাসপাথ এন্ট্রির ক্রম নির্ধারণকারী সঠিক মার্জিং অ্যালগরিদম
derive_classpath.cpp
লিঙ্কে বর্ণনা করা আছে এবং সময়ের সাথে সাথে এটি পরিবর্তিত হতে পারে।