SDK Extensions modülü, cihazın uzantı SDK'sı seviyesini belirler ve Uygulamaların, uzantı SDK düzeyini sorgulaması için API'ler sağlar. Bu modül güncellenebilir yani normal dışında işlevlere yönelik güncellemeleri alabilir. Android sürüm döngüsü.
SDK Extensions şunlardan sorumludur:
- Cihazın uzantı SDK'sı düzeyine karar verme.
- Uygulamaların, uzantı SDK düzeyini sorgulamaları için API'ler sağlama.
- (Android 12'den itibaren)
BOOTCLASSPATH
,DEX2OATBOOTCLASSPATH
veSYSTEMSERVERCLASSPATH
ortam değişkeni.
Modül biçimi
SDK Extensions modülü (com.android.sdkext
)
APEX biçimindedir ve cihazlarda kullanılabilir
Android 11 veya sonraki sürümleri çalıştıran.
Paket biçimi
SDK Extensions modülü (com.google.android.sdkext
)
APEX biçimi ve
aşağıdaki bileşenleri içerir:
(Android 12'den itibaren)
bin/derive_classpath
: A cihaz önyüklemesinde erken çalıştırılan yerel ikili program bahsedeceğim. Sistemden bağımsız sınıf yolu yapılandırma dosyalarını okur ve Bu modülleri birleştirir veCLASSPATH
tanımını tanımlar değişkenlerine odaklanmalıdır.bin/derive_sdk
: Cihaz başlatma işleminin erken aşamalarında çalışan bir yerel ikili program ve o modülle ilgili sistem özelliklerini ayarlamak için diğer modüllerin meta verilerini uzantı SDK'sı (örneğin,build.version.extensions.r
).javalib/framework-sdkextension.jar
: Bu dosya şu bootclasspath dosyasında: API'leri, uzantı SDK düzeyini sorgulamak için uygulamalara sunar.
Uzantı SDK'sı seviyesini türetme
derive_sdk
programı,
Her APEX modülünde etc/sdkinfo.binarypb
alt yol. Protobuf ile ilgili ayrıntılar için
daha fazla bilgi için
protobuf
dosyası olarak kaydedebilirsiniz.
Uzantı SDK seviyesi okuma
SDK Extensions modülü
SdkExtensions
java sınıfını android.os.ext
paketine ekler. getExtensionVersion(int)
kullanın
bir SDK uzantısının sürümünü okuma yöntemi (örneğin,
getExtensionVersion(Build.VERSION_CODES.R)
) tıklayın.
Sınıf yolları türetme
derive_classpath
hizmeti, buradaki yapılandırma dosyalarını tek tek okur ve birleştirir
/system/etc/classpaths/
ve /apex/*/etc/classpaths/
. Her yapılandırma,
classpaths.proto
adlı kullanıcıdan protobuf mesajı
çok basittir. Sırayı belirleyen tam birleştirme algoritması
hakkında daha fazla bilgi için
derive_classpath.cpp
ve zamanla değişebilir.