27 Mart 2025'ten itibaren AOSP'yi derlemek ve AOSP'ye katkıda bulunmak için aosp-main
yerine android-latest-release
kullanmanızı öneririz. Daha fazla bilgi için AOSP'de yapılan değişiklikler başlıklı makaleyi inceleyin.
SDK Uzantıları
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
SDK Uzantıları modülü, cihazın uzantı SDK düzeyine karar verir ve uygulamaların uzantı SDK düzeyini sorgulayabileceği API'ler sağlar. Bu modül güncellenebilir. Yani normal Android sürüm döngüsünün dışında işlevsellik güncellemeleri alabilir.
SDK uzantıları aşağıdakilerden sorumludur:
- Cihazın uzantı SDK düzeyine karar verme.
- Uygulamaların uzantı SDK düzeyini sorgulayabileceği API'ler sağlar.
- (Android 12'den itibaren)
BOOTCLASSPATH
, DEX2OATBOOTCLASSPATH
ve SYSTEMSERVERCLASSPATH
ortam değişkenlerinin değerlerini belirleme.
SDK Uzantıları modülü (com.android.sdkext
), APEX biçimindedir ve Android 11 veya sonraki sürümlerin yüklü olduğu cihazlarda kullanılabilir.
SDK Uzantıları modülü (com.google.android.sdkext
), APEX biçimindedir ve aşağıdaki bileşenleri içerir:
(Android 12'den itibaren) bin/derive_classpath
: Cihazın önyükleme işleminin başlarında çalışan yerel bir ikili dosya. Sistemden ve diğer modüllerden tek tek sınıf yolu yapılandırma dosyalarını okur, bunları birleştirir ve CLASSPATH
ortam değişkenlerinin tanımını tanımlar.
bin/derive_sdk
: Cihazın önyükleme işleminin başlarında çalışan ve uzantı SDK'sıyla (örneğin, build.version.extensions.r
) ilgili sistem özelliklerini ayarlamak için diğer modüllerin meta verilerini okuyan doğal bir ikili dosya.
javalib/framework-sdkextension.jar
: Bu dosya, uzantı SDK düzeyini sorgulamak için API'leri uygulamalara gösteren önyükleme sınıf yolu üzerindedir.
Uzatma SDK düzeyini türetme
derive_sdk
programı, her APEX modülündeki etc/sdkinfo.binarypb
alt yolunda ikili protobuf dosyası olarak depolanan meta verileri okur. Protobuf yapısı hakkında ayrıntılı bilgi için protobuf
dosyasına bakın.
Uzantı SDK düzeyinde okuma
SDK Uzantılar modülü, android.os.ext
paketinde bir SdkExtensions
java sınıfı gösterir. Bir SDK uzantısının sürümünü okumak için getExtensionVersion(int)
yöntemini kullanın (örneğin, getExtensionVersion(Build.VERSION_CODES.R)
).
Yol adlarını türetme
derive_classpath
hizmeti, /system/etc/classpaths/
ve /apex/*/etc/classpaths/
'deki yapılandırma dosyalarını tek tek okur ve birleştirir. Her yapılandırma, classpaths.proto
kaynaklı protobuf mesajını proto ikili biçiminde depolar. ClassPath girişlerinin sırasını belirleyen tam birleştirme algoritması derive_classpath.cpp
bölümünde açıklanmıştır ve zaman içinde değişebilir.
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-27 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."]]