Rozszerzenia SDK

Moduł rozszerzeń SDK określa poziom pakietu SDK rozszerzenia na urządzeniu udostępnia interfejsy API umożliwiające aplikacjom wysyłanie zapytań na poziomie pakietu SDK rozszerzenia. Ten moduł którą można aktualizować, co oznacza, że może otrzymywać aktualizacje funkcji Cykl publikowania wersji Androida.

Rozszerzenia SDK odpowiadają za:

  • Określam poziom pakietu SDK rozszerzenia na urządzeniu.
  • Udostępniamy interfejsy API dla aplikacji do wysyłania zapytań na poziomie pakietu SDK rozszerzenia.
  • (Od Androida 12) Określanie wartości dla wartości BOOTCLASSPATH, DEX2OATBOOTCLASSPATH i SYSTEMSERVERCLASSPATH zmienne środowiskowe.

Format modułu

Moduł rozszerzeń SDK (com.android.sdkext) jest dostępny Format APEX jest dostępny dla urządzeń. z Androidem 11 lub nowszym,

Format pakietu

Moduł rozszerzeń SDK (com.google.android.sdkext) jest dostępny APEX oraz zawiera następujące komponenty:

  • (Od Androida 12) bin/derive_classpath: A natywny plik binarny uruchamiany na wczesnym etapie rozruchu urządzenia proces tworzenia konta. Odczytuje z systemu poszczególne pliki konfiguracji ścieżki klasy oraz innych modułów, scala je i określa definicję pola CLASSPATH. zmiennych środowiskowych.

  • bin/derive_sdk: natywny plik binarny uruchamiany na wczesnym etapie rozruchu urządzenia. i odczytuje metadane innych modułów, aby ustawić właściwości systemowe powiązane z SDK rozszerzenia (np. build.version.extensions.r).

  • javalib/framework-sdkextension.jar: ten plik znajduje się w ścieżce rozruchowej, która udostępnia API aplikacjom w celu wysłania zapytań na poziomie pakietu SDK rozszerzenia.

Wygeneruj poziom pakietu SDK rozszerzenia

Program derive_sdk odczytuje metadane zapisane jako binarne pliki protokołu w Ścieżka podrzędna etc/sdkinfo.binarypb w każdym module APEX. Szczegółowe informacje o protobufie zapoznaj się z protobuf .

Odczytywanie poziomu pakietu SDK rozszerzenia

Moduł rozszerzeń SDK udostępnia SdkExtensions w pakiecie android.os.ext. Użyj funkcji getExtensionVersion(int) do odczytu wersji rozszerzenia SDK (na przykład getExtensionVersion(Build.VERSION_CODES.R)).

Uzyskiwanie ścieżek klasy

Usługa derive_classpath odczytuje i scala poszczególne pliki konfiguracyjne w /system/etc/classpaths/ i /apex/*/etc/classpaths/. Każda przechowywana konfiguracja wiadomość Protobuf od classpaths.proto w formacie binarnym proto. dokładny algorytm scalania, który określa kolejność; wpisów ścieżki klasy opisano w derive_classpath.cpp i mogą z czasem ulec zmianie.