إضافات حزمة تطوير البرامج (SDK)

تحدّد وحدة إضافات حزمة تطوير البرامج (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 وقد تتغير بمرور الوقت