يشير مستوى واجهة برمجة التطبيقات الخاصة بالمورّد إلى إصدار الواجهة المتوافق مع قسم المورّد. الواجهة ثنائية الاتجاه، فهي تصف واجهة برمجة التطبيقات التي يوفّرها قسم المورّد لقسم النظام (طبقة تجريد الأجهزة أو واجهة HAL)، كما تصف واجهة برمجة التطبيقات التي يتطلّبها قسم المورّد من قسم النظام (حزمة أدوات المطوّرين الأصلية المنخفضة المستوى أو واجهة LLNDK).
يتم أيضًا استخدام مستوى واجهة برمجة التطبيقات الخاصة بالمورّد لتحديد متطلبات برنامج المورّد (VSR)، وهي مجموعة من المتطلبات الوظيفية وغير الوظيفية التي يجب أن يستوفيها البرنامج في قسم المورّد.
توضّح بقية هذه الصفحة كيفية استخدام خصائص النظام، استنادًا إلى إصدار Android، لتحديد مستوى واجهة برمجة التطبيقات الخاصة بالمورّد.
تعليق المورّدين
يسمح نظام التشغيل Android للمورّد بتجميد قسم المورّد في إصدار معيّن من VSR. يتم تحديد مجموعة الميزات التي يتوقّعها نظام التشغيل Android من قسم المورّد حسب مستوى واجهة برمجة التطبيقات الخاصة بالمورّد والمرتبط بقسم المورّد. في وقت التشغيل، يتم تعديل سلوك البرنامج الذي يتم تشغيله في قسم النظام لاستيعاب مستوى واجهة برمجة التطبيقات الخاصة بالمورّد في قسم المورّد. على سبيل المثال، قد لا يستفيد البرنامج في قسم النظام من الميزات الجديدة إذا لم يكن مستوى واجهة برمجة التطبيقات في قسم المورّد متوافقًا معها.
لا تتوفّر فترة حظر المورّدين إلا إذا كنت بصدد إنشاء جهاز متوافق مع Android.
تحديد مستوى واجهة برمجة التطبيقات الخاصة بالمورّد (الإصدار Android 14-QPR3 والإصدارات الأحدث)
في الإصدارات Android 14-QPR3 والإصدارات الأحدث، يتم إصدار مستوى واجهة برمجة التطبيقات الخاصة بالمورّد بشكل منفصل، ما يعني أنّ مستوى واجهة برمجة التطبيقات لحزمة SDK ومستوى واجهة برمجة التطبيقات الخاصة بالمورّد غير متزامنين.
ونظرًا إلى جداول الإصدار المنفصلة، فإنّ مستوى واجهة برمجة التطبيقات الخاصة بالمورّد يكون منفصلاً تمامًا عن مستوى واجهة برمجة التطبيقات لحزمة SDK في الإصدار 14 من نظام التشغيل Android والإصدارات الأحدث من QPR3. ولضمان وضوح هذا الفصل، يكون تنسيق مستوى واجهة برمجة التطبيقات الخاصة بالمورّد عبارة عن تاريخ بالتنسيق YYYYMM (السنة والشهر)، بينما يكون مستوى حزمة تطوير البرامج (SDK) عددًا صحيحًا.
يحتوي الإصدار 14 من Android QPR3 والإصدارات الأحدث على خصائص النظام التالية ذات الصلة بمستوى واجهة برمجة التطبيقات الخاصة بالمورّد:
سمة النظام | التنسيق | الوصف | الإعداد الأوّلي |
---|---|---|---|
ro.board.api_level |
YYYYMM | مستوى واجهة برمجة التطبيقات الذي يوفّره المورّد والذي يتوافق مع برنامج مجموعة الشرائح يتم ضبط هذه السمة لجميع شرائح المعالجة. | يتم ضبط هذا الخيار تلقائيًا من خلال نظام الإنشاء. |
ro.board.first_api_level |
YYYYMM | مستوى واجهة برمجة التطبيقات الخاص بالمورّد الذي تم إصدار برنامج مجموعة الشرائح به لأول مرة هذه السمة هي وظيفة مجموعة الشرائح فقط ويتم ضبطها من قِبل مورّدي نظام التشغيل على الشريحة إذا كانت مجموعة شرائح نظام التشغيل على الشريحة مؤهَّلة للتجميد من قِبل المورّد. بعد الضبط الأولي، يجب عدم تعديله. | يضبط مورّدو نظام التشغيل على الشريحة هذا الإعداد باستخدام 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 فقط إذا كانت مجموعة شرائح النظام على الشريحة مؤهَّلة للتجميد من قِبل المورّد. |
موضّحة بعد هذا الجدول. |
ro.board.api_frozen |
قيمة منطقية | يتم ضبط هذه السمة على true إذا تم الانتهاء من مستوى واجهة برمجة التطبيقات الخاص بالمورّد الذي يمثّله ro.board.api_level . |
إذا لم يتم ضبط هذه السمة، سيتم ضبطها تلقائيًا على false . |
ro.llndk.api_level |
YYYYMM | مستوى واجهة برمجة التطبيقات الخاصة بالمورّد بتنسيق YYYYMM الذي يوفّره LLNDK الحالي في قسم النظام تتوافق حزمة LLNDK مع الإصدارات القديمة، لذا يمكن تثبيت أي صورة خاصة بمورّد تتضمّن مستوى واجهة برمجة تطبيقات مماثلاً لصورة النظام هذه أو أقل منه. | يتم ضبط هذه السمة في قسم النظام. |
يتم استخلاص السمة ro.vendor.api_level
بإحدى الطريقتَين التاليتَين:
إذا كانت مجموعة الشرائح مؤهَّلة للتجميد من قِبل المورِّد:
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 الذي تم فيه ضبط مستوى واجهة برمجة التطبيقات الحالي للمورّد.
تحديد مستوى واجهة برمجة التطبيقات الخاصة بالمورّد (الإصدار 13 من نظام التشغيل Android)
يتبع مستوى واجهة برمجة التطبيقات الخاصة بالمورّد مستوى واجهة برمجة التطبيقات لحزمة SDK، وهو مخصّص لواجهة التطبيق ونظام التشغيل ويتم تحديثه مرة واحدة في السنة عند طرح منصة Android الجديدة في "مشروع Android مفتوح المصدر" (AOSP).
يحتوي نظام التشغيل Android 13 على خصائص النظام التالية ذات الصلة بمستوى واجهة برمجة التطبيقات الخاصة بالمورّد:
سمة النظام | التنسيق | الوصف | الإعداد الأوّلي |
---|---|---|---|
ro.board.first_api_level |
عدد صحيح | مستوى واجهة برمجة التطبيقات الخاص بالمورّد الذي تم إصدار برنامج مجموعة الشرائح به لأول مرة هذه الوظيفة خاصة بمجموعة الشرائح فقط، ولا يمكن تعديلها من قِبل مورّدي نظام التشغيل على الشريحة أو المصنّعين الأصليين للأجهزة. يتم ضبط هذه السمة فقط لشرائح المعالجة المؤهَّلة للتجميد من المورّد. | يتم تحديد القيمة من خلال ضبط 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) لشجرة المصدر التي تم إنشاء قسم المورِّد فيها |