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