تحدِّد وحدة "إضافات حزمة تطوير البرامج (SDK)" مستوى حزمة SDK الإضافية للجهاز، وتوفر واجهتَي برمجة تطبيقات للتطبيقات من أجل الاستعلام عن مستوى حزمة SDK الإضافية. هذه الوحدة قابله للتحديث، ما يعني أنّه يمكنها تلقّي تحديثات للوظائف خارج دورة إصدار Android العادية.
تتحمّل "إضافات حِزم تطوير البرامج (SDK)" مسؤولية ما يلي:
- تحديد مستوى حزمة تطوير البرامج (SDK) للإضافة على الجهاز
- توفير واجهات برمجة تطبيقات للتطبيقات من أجل الاستعلام عن مستوى حزمة تطوير البرامج (SDK) للإضافة
- (بدءًا من Android 12) تحديد قيم متغيّرات البيئة
BOOTCLASSPATH
وDEX2OATBOOTCLASSPATH
وSYSTEMSERVERCLASSPATH
تنسيق الوحدة
وحدة إضافات حزمة تطوير البرامج (SDK) (com.android.sdkext
) بتنسيق
APEX، وهي متاحة للأجهزة
التي تعمل بالإصدار 11 من نظام التشغيل Android أو الإصدارات الأحدث.
تنسيق الحزمة
إنّ وحدة إضافات حِزم تطوير البرامج (SDK) (com.google.android.sdkext
) بتنسيق
APEX وتحتوي
على المكوّنات التالية:
(بدءًا من Android 12)
bin/derive_classpath
: ملف ثنائي برمجي أصلي يتم تشغيله في وقت مبكر من عملية التمهيد للجهاز يقرأ هذا المسار ملفات إعدادات 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
وقد تتغيّر بمرور الوقت.