تحدّد وحدة إضافات حزمة تطوير البرامج (SDK) مستوى حزمة SDK للإضافة على الجهاز. توفّر واجهات برمجة التطبيقات للتطبيقات لطلب البحث عن مستوى حزمة تطوير البرامج (SDK) للإضافة. هذه الوحدة قابل للتحديث، أي أنّه يمكن أن يتلقّى تحديثات للوظائف خارج نطاق دورة إصدار Android.
تتحمّل إضافات حِزم تطوير البرامج (SDK) مسؤولية ما يلي:
- تحديد مستوى حزمة تطوير البرامج (SDK) للإضافة للجهاز
- توفير واجهات برمجة تطبيقات للتطبيقات لطلب البحث عن مستوى حزمة تطوير البرامج (SDK) للإضافة
- (بدءًا من Android 12) تحديد قيم
BOOTCLASSPATH
وDEX2OATBOOTCLASSPATH
وSYSTEMSERVERCLASSPATH
متغيّر للبيئة
تنسيق الوحدة
تتوفّر وحدة إضافات حِزم تطوير البرامج (SDK) (com.android.sdkext
) حاليًا.
تنسيق APEX متوفّر للأجهزة
يعمل بنظام التشغيل Android 11 أو إصدار أحدث.
تنسيق الحزمة
تتوفّر وحدة إضافات حِزم تطوير البرامج (SDK) (com.google.android.sdkext
) حاليًا.
تنسيق APEX
يحتوي على المكونات التالية:
(بدءًا من نظام التشغيل Android 12)
bin/derive_classpath
: A برنامج ثنائي أصلي يعمل في وقت مبكر من تشغيل الجهاز الدفع. يقرأ ملفات تهيئة المسار الفردي من النظام وحدات أخرى ودمجها وتحديد تعريفCLASSPATH
والمتغيرات البيئية.bin/derive_sdk
: برنامج ثنائي أصلي يتم تشغيله مبكرًا في عملية تشغيل الجهاز وتقرأ بيانات التعريف للوحدات الأخرى لتعيين خصائص النظام المتعلقة SDK للإضافة (مثلbuild.version.extensions.r
).javalib/framework-sdkextension.jar
: هذا الملف في مسار التمهيد الذي تعرض واجهات برمجة التطبيقات للتطبيقات لطلب البحث عن مستوى حزمة تطوير البرامج (SDK) للإضافة.
استنتاج مستوى حزمة تطوير البرامج (SDK) للإضافة
يقرأ برنامج "derive_sdk
" البيانات الوصفية المخزّنة كملفات نموذج أوّلي ثنائي في
مسار فرعي واحد (etc/sdkinfo.binarypb
) داخل كل وحدة APEX للحصول على تفاصيل حول Protobuf
الهيكل، ارجع إلى
protobuf
الملف.
قراءة مستوى حزمة تطوير البرامج (SDK) للإضافة
تكشف وحدة إضافات حزمة تطوير البرامج (SDK) عن
SdkExtensions
فئة جافا في الحزمة android.os.ext
. استخدام getExtensionVersion(int)
لقراءة إصدار إضافة حزمة تطوير البرامج (SDK) (على سبيل المثال،
getExtensionVersion(Build.VERSION_CODES.R)
).
استنتاج مسارات الفئات
تقرأ خدمة derive_classpath
ملفات الإعداد الفردية وتدمجها في
/system/etc/classpaths/
و/apex/*/etc/classpaths/
يخزن كل ملف تهيئة
رسالة أوّلية من classpaths.proto
في تنسيق أولي ثنائي. يشير ذلك المصطلح إلى خوارزمية الدمج الدقيقة التي تحدِّد الترتيب.
حول إدخالات مسار الفئة
derive_classpath.cpp
وقد تتغير بمرور الوقت