يشير مستوى واجهة برمجة التطبيقات الخاصة بالمورّد إلى إصدار الواجهة المتوافق مع قسم المورّد. الواجهة ثنائية الاتجاه، فهي تصف واجهة برمجة التطبيقات التي يوفّرها قسم المورّد لقسم النظام (طبقة تجريد الأجهزة أو واجهة HAL)، كما تصف واجهة برمجة التطبيقات التي يتطلّبها قسم المورّد من قسم النظام (حزمة أدوات المطوّرين الأصلية المنخفضة المستوى أو واجهة LLNDK).
يُستخدم مستوى واجهة برمجة التطبيقات للمورّد أيضًا لتحديد متطلبات برامج المورّد (VSR)، وهي مجموعة من المتطلبات الوظيفية وغير الوظيفية التي يجب أن يستوفيها البرنامج في قسم المورّد.
توضّح بقية هذه الصفحة كيفية استخدام خصائص النظام، استنادًا إلى إصدار Android، لتحديد مستوى واجهة برمجة التطبيقات الخاصة بالمورّد.
تجميد المورّدين
يتيح Android للمورّد تجميد قسم المورّد في إصدار معيّن من متطلبات برامج المورّدين (VSR). يتم تحديد مجموعة الميزات التي يتوقّعها نظام التشغيل Android من قسم المورّد من خلال مستوى واجهة برمجة التطبيقات الخاص بالمورّد والمرتبط بقسم المورّد. في وقت التشغيل، يتم تعديل سلوك البرنامج الذي يعمل في قسم النظام ليتوافق مع مستوى واجهة برمجة التطبيقات الخاص بقسم المورّد. على سبيل المثال، قد لا تستخدم البرامج في قسم النظام الميزات الجديدة إذا لم تكن متوافقة مع مستوى واجهة برمجة التطبيقات لقسم المورّد.
لا يتوفّر تجميد المورّد إلا إذا كنت تنشئ جهازًا متوافقًا مع Android.
تحديد مستوى واجهة برمجة التطبيقات الخاصة بالمورّد (الإصدار 14 من نظام التشغيل Android QPR3 والإصدارات الأحدث)
في الإصدار Android 14 QPR3 والإصدارات الأحدث، يتم إصدار مستوى واجهة برمجة التطبيقات الخاصة بالمورّد بشكل منفصل، ما يعني أنّ مستوى واجهة برمجة التطبيقات لحزمة تطوير البرامج (SDK) ومستوى واجهة برمجة التطبيقات الخاصة بالمورّد غير متزامنين.
بسبب الجداول الزمنية المنفصلة لإصدار الفيديوهات، بالنسبة إلى الإصدار Android 14 QPR3 والإصدارات الأحدث، يتم فصل مستوى واجهة برمجة التطبيقات للمورّد تمامًا عن مستوى واجهة برمجة التطبيقات لحزمة تطوير البرامج (SDK). لضمان وضوح هذا الفصل، يكون تنسيق مستوى واجهة برمجة التطبيقات للمورّد هو تاريخ بتنسيق YYYYMM (السنة والشهر)، بينما يكون مستوى حزمة تطوير البرامج (SDK) عددًا صحيحًا.
يحتوي الإصدار 14 من نظام التشغيل Android (QPR3) والإصدارات الأحدث على سمات النظام التالية ذات الصلة بمستوى واجهة برمجة التطبيقات الخاصة بالمورّد:
| سمة النظام | التنسيق | الوصف | الإعداد الأولي |
|---|---|---|---|
ro.board.api_level |
YYYYMM | مستوى واجهة برمجة التطبيقات الذي يوفّره المورِّد ويتوافق معه برنامج مجموعة الشرائح يتم ضبط هذه السمة لجميع شرائح المعالجة. | يتم ضبط هذا الخيار تلقائيًا من خلال نظام الإنشاء. |
ro.board.first_api_level |
YYYYMM | مستوى واجهة برمجة التطبيقات للمورّد الذي تم إصدار برنامج شريحة التعريف به لأول مرة هذه السمة هي وظيفة شريحة التعريف فقط ويتم ضبطها من قِبل مورّدي منظومة على رقاقة (SoC) إذا كانت شريحة التعريف مؤهَّلة للتجميد من قِبل المورّد. بعد الضبط الأولي، يجب اعتبار هذه السمة نهائية وعدم تعديلها. على الرغم من أنّنا لا ننصح بذلك بشدة، قد يُسمح بإجراء تحديث في حالات استثنائية نادرة مع تأهيل جديد لتجميد المورّدين. | يضبط مورّدو نظام التشغيل على الشريحة هذا الإعداد باستخدام BOARD_SHIPPING_API_LEVEL. |
ro.product.first_api_level |
عدد صحيح | مستوى واجهة برمجة التطبيقات لحزمة تطوير البرامج (SDK) الذي تم إطلاق الجهاز به في البداية | يتم ضبط هذه السمة من قِبل المصنّع الأصلي للجهاز ولا يتم تعديلها أبدًا، حتى بعد ترقيات نظام التشغيل. |
ro.vendor.api_level |
YYYYMM | تمثّل هذه السمة مستوى واجهة برمجة التطبيقات الذي يوفّره المورِّد والمتوافق مع ro.product.first_api_level. نضبط ro.vendor.api_level على قيمة ro.board.api_level عندما تكون ro.board.api_level أقل من مستوى واجهة برمجة التطبيقات الخاصة بالمورّد ro.product.first_api_level فقط إذا كانت مجموعة شرائح SoC مؤهَّلة للتجميد من قِبل المورّد. |
موضّحة بعد هذا الجدول. |
ro.board.api_frozen |
قيمة منطقية | يتم ضبط هذه السمة على true إذا تم الانتهاء من مستوى واجهة برمجة التطبيقات الخاص بالمورّد الذي يمثّله ro.board.api_level. |
إذا لم يتم ضبط هذه السمة، سيتم ضبطها تلقائيًا على false. |
ro.llndk.api_level |
YYYYMM | مستوى واجهة برمجة التطبيقات الخاصة بالمورّد بتنسيق YYYYMM الذي يوفّره LLNDK الحالي في قسم النظام يتوافق LLNDK مع الأنظمة القديمة، لذا يمكن تثبيت أي صورة مورّد أقل من أو تساوي مستوى واجهة برمجة التطبيقات هذا باستخدام صورة النظام هذه. | يتم ضبط هذه السمة في قسم النظام. |
يتم استخلاص السمة ro.vendor.api_level بإحدى الطريقتَين التاليتَين:
إذا كانت شريحة التعريف مؤهَّلة لبرنامج Vendor Freeze:
ro.vendor.api_level = min( ro.board.api_level, AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level))إذا لم تكن شريحة التعريف خاضعة لعملية تجميد المورّد:
ro.vendor.api_level = AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level)
تحدّد الطريقة AVendorSupport_getVendorApiLevelOf() مستوى واجهة برمجة التطبيقات الخاص بالمورّد المناسب من مستوى واجهة برمجة التطبيقات الخاص بحزمة SDK. على سبيل المثال،
AVendorSupport_getVendorApiLevelOf(35)، حيث 35 هو مستوى واجهة برمجة التطبيقات لحزمة SDK الخاصة بإصدار Android الرئيسي في 2024، يعرض 202404، وهو التاريخ التقريبي لإصدار Android 14 QPR3 الذي تم فيه ضبط مستوى واجهة برمجة التطبيقات الحالي للمورّد.
تحديد مستوى واجهة برمجة التطبيقات للمورّد (Android 13)
يتبع مستوى واجهة برمجة التطبيقات للمورّد مستوى واجهة برمجة التطبيقات لحزمة تطوير البرامج (SDK)، وهو مخصّص لواجهة نظام التشغيل في التطبيق ويتم تحديثه مرة واحدة في السنة عند إصدار نظام Android الأساسي الجديد إلى مشروع Android المفتوح المصدر (AOSP).
يحتوي نظام التشغيل Android 13 على خصائص النظام التالية ذات الصلة بمستوى واجهة برمجة التطبيقات الخاصة بالمورّد:
| سمة النظام | التنسيق | الوصف | الإعداد الأوّلي |
|---|---|---|---|
ro.board.first_api_level |
عدد صحيح | مستوى واجهة برمجة التطبيقات الخاص بالمورّد الذي تم إصدار برنامج مجموعة الشرائح به لأول مرة هذه وظيفة خاصة بشريحة التعريف فقط، ولا يمكن لمورّدي SoC أو المصنّعين الأصليين للأجهزة تعديلها. يتم ضبط هذه السمة فقط لشرائح المعالجة المؤهَّلة للتجميد من المورّد | يتم تحديد القيمة من خلال ضبط BOARD_SHIPPING_API_LEVEL في الملف device.mk. |
ro.board.api_level |
عدد صحيح | مستوى واجهة برمجة التطبيقات الخاص بالمورّد الذي يتوافق معه برنامج شريحة التعريف يتم ضبط هذه السمة فقط لشرائح المعالجة المؤهَّلة للتجميد من المورّد. | يتم ضبط قيمة هذه السمة في البداية بواسطة نظام الإنشاء على القيمة نفسها ro.board.first_api_level، ولكن يمكن تعديلها في حال ترقية قسم المورّد. |
ro.product.first_api_level |
عدد صحيح | مستوى واجهة برمجة التطبيقات لحزمة تطوير البرامج (SDK) الذي تم إطلاق الجهاز به في البداية | يتم ضبط هذه السمة من قِبل المصنّع الأصلي للجهاز ولا يتم تعديلها أبدًا، حتى بعد ترقيات نظام التشغيل. |
ro.vendor.api_level |
عدد صحيح | كما هو الحال مع وصف مستوى واجهة برمجة التطبيقات الخاصة بالمورّد في الجدول السابق. | |
ro.vndk.version |
عدد صحيح | إصدار VNDK الذي تم إنشاء قسم المورّد استنادًا إليه. | يتم ضبط هذه السمة في قسم المورّد. |
ro.vendor.build.version.sdk |
عدد صحيح | مستوى واجهة برمجة التطبيقات لحزمة تطوير البرامج (SDK) لشجرة المصدر التي تم إنشاء قسم المورِّد فيها |