27 মার্চ, 2025 থেকে, আমরা AOSP তৈরি করতে এবং অবদান রাখতে aosp-main
এর পরিবর্তে android-latest-release
ব্যবহার করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য, AOSP-তে পরিবর্তনগুলি দেখুন।
SDK এক্সটেনশন
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
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
এ বর্ণনা করা হয়েছে এবং সময়ের সাথে সাথে পরিবর্তিত হতে পারে।
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[],null,["# SDK Extensions\n\nThe SDK Extensions module decides the extension SDK level of the device and\nprovides APIs for apps to query the extension SDK level. This module is\nupdatable, meaning it can receive updates to functionality outside of the normal\nAndroid release cycle.\n\nSDK Extensions is responsible for:\n\n- Deciding the extension SDK level of the device.\n- Providing APIs for apps to query the extension SDK level.\n- (Starting Android 12) Determining the values for the `BOOTCLASSPATH`, `DEX2OATBOOTCLASSPATH`, and `SYSTEMSERVERCLASSPATH` environment variables.\n\nModule format\n-------------\n\nThe SDK Extensions module (`com.android.sdkext`) is in\n[APEX](/docs/core/ota/apex) format and is available for devices\nrunning Android 11 or higher.\n\nPackage format\n--------------\n\nThe SDK Extensions module (`com.google.android.sdkext`) is in\n[APEX](/devices/tech/ota/apex) format and\ncontains the following components:\n\n- (Starting Android 12) `bin/derive_classpath`: A\n native binary that runs early in the device boot\n process. It reads individual classpath configs files from the system and\n other modules, merges them, and defines the definition of `CLASSPATH`\n environment variables.\n\n- `bin/derive_sdk`: A native binary that runs early in the device boot process\n and reads metadata of other modules to set system properties related to the\n extension SDK (for example, `build.version.extensions.r`).\n\n- `javalib/framework-sdkextension.jar`: This file is on the bootclasspath that\n exposes APIs to apps to query the extension SDK level.\n\nDerive extension SDK level\n--------------------------\n\nThe `derive_sdk` program reads metadata stored as binary protobuf files in the\n`etc/sdkinfo.binarypb` subpath inside each APEX module. For details on protobuf\nstructure, refer to the\n[`protobuf`](https://android.googlesource.com/platform/external/protobuf.git)\nfile.\n\nRead extension SDK level\n------------------------\n\nThe SDK Extensions module exposes an\n[`SdkExtensions`](https://android.googlesource.com/platform/packages/modules/SdkExtensions/)\njava class in the `android.os.ext` package. Use the `getExtensionVersion(int)`\nmethod to read the version of an SDK extension (for example,\n`getExtensionVersion(Build.VERSION_CODES.R)`).\n\nDerive classpaths\n-----------------\n\nThe `derive_classpath` service reads and merges individual config files in\n`/system/etc/classpaths/` and `/apex/*/etc/classpaths/`. Each config stores\nprotobuf message from [`classpaths.proto`](https://android.googlesource.com/platform/packages/modules/common/+/android16-release/proto/classpaths.proto)\nin a proto binary format. The exact merging algorithm that determines the order\nof the classpath entries is described in\n[`derive_classpath.cpp`](https://android.googlesource.com/platform/packages/modules/SdkExtensions/+/android16-release/derive_classpath/derive_classpath.cpp)\nand might change over time."]]