تحدِّد وحدة "إضافات حزمة تطوير البرامج (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
بتنسيق ثنائي proto. يتم وصف خوارزمية الدمج الدقيقة التي تحدّد ترتيب
إدخالات مسار الطباعة في
derive_classpath.cpp
وقد تتغيّر بمرور الوقت.