تحدّد وحدة "إضافات حزمة تطوير البرامج (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: هو ملف ثنائي أصلي يتم تشغيله في وقت مبكر من عملية تشغيل الجهاز. يقرأ هذا الملف ملفات إعداد مسار الفئة الفردية من النظام والوحدات الأخرى، ويدمجها، ويحدّد تعريف متغيّرات البيئةCLASSPATH.bin/derive_sdk: هو ملف ثنائي أصلي يتم تشغيله في وقت مبكر من عملية تشغيل الجهاز ويقرأ البيانات الوصفية للوحدات الأخرى لضبط خصائص النظام المتعلقة بحزمة تطوير البرامج (SDK) للإضافة (مثلbuild.version.extensions.r).javalib/framework-sdkextension.jar: هذا الملف موجود في مسار الفئة الذي يعرض واجهات برمجة التطبيقات للتطبيقات للاستعلام عن مستوى حزمة تطوير البرامج (SDK) للإضافة.
استنتاج مستوى حزمة تطوير البرامج (SDK) للإضافة
يقرأ برنامج derive_sdk البيانات الوصفية المخزّنة كملفات protobuf ثنائية في المسار الفرعي etc/sdkinfo.binarypb داخل كل وحدة APEX. للحصول على تفاصيل حول بنية protobuf
، يُرجى الرجوع إلى الـ
protobuf
ملف.
قراءة مستوى حزمة تطوير البرامج (SDK) للإضافة
تعرض وحدة "إضافات حزمة تطوير البرامج (SDK)" فئة java باسم
SdkExtensions
في حزمة android.os.ext. استخدِم طريقة getExtensionVersion(int) لقراءة إصدار إحدى إضافات حزمة تطوير البرامج (SDK) (مثل getExtensionVersion(Build.VERSION_CODES.R)).
استنتاج مسارات الفئة
تقرأ خدمة derive_classpath ملفات الإعداد الفردية وتدمجها في /system/etc/classpaths/ و/apex/*/etc/classpaths/. يخزّن كل ملف إعداد
رسالة protobuf من classpaths.proto
بتنسيق ثنائي أولي. يتم وصف خوارزمية الدمج الدقيقة التي تحدّد ترتيب
إدخالات مسار الفئة في
derive_classpath.cpp
وقد تتغيّر بمرور الوقت.