مستوى واجهة برمجة التطبيقات للمورّد

يشير مستوى واجهة برمجة التطبيقات للمورّد إلى إصدار الواجهة المتوافقة مع قسم البائع. الواجهة ثنائية الاتجاه؛ فهي تصف واجهة برمجة التطبيقات الذي يوفره قسم البائع لقسم النظام (الجهاز طبقة التجريد، وواجهة HAL)، وأيضًا واجهة برمجة التطبيقات التي يسمح فيها من قسم النظام (مجموعة أدوات المطورين الأصليين أو واجهة LLNDK).

يُستخدم مستوى واجهة برمجة التطبيقات للمورّدين أيضًا لتحديد متطلبات برامج المورّدين (VSR)، وهي مجموعة من المتطلبات الوظيفية وغير الوظيفية التي يجب أن يلبي البرنامج في قسم البائع.

توضّح بقية هذه الصفحة كيف يمكن للنظام حسب إصدار Android الذي تستخدمه، لتحديد البائع مستوى واجهة برمجة التطبيقات.

إيقاف المورّدين

يتيح Android للمورِّد تجميد قسم البائع عند إصدار محدد من VSR. المجموعة يتم تحديد الميزات التي يتوقعها Android من قسم البائع عن طريق مستوى واجهة برمجة تطبيقات البائع المرتبط بقسم المورد. في وقت التشغيل، قد يكون السلوك يتم ضبط البرامج التي تعمل في قسم النظام ليلائم مستوى واجهة برمجة تطبيقات المورد لقسم المورد. على سبيل المثال، البرامج الموجودة في قد لا يمارس قسم النظام ميزات جديدة إذا لم تكن متوافقة مع مستوى واجهة برمجة التطبيقات لقسم المورد.

لا يتوفر تجميد البائع إلا إذا كنت تقوم بإنشاء جهاز متوافق مع Android.

تحديد مستوى واجهة برمجة التطبيقات للمورّد (Android 14-QPR3 والإصدارات الأحدث)

بالنسبة إلى الإصدار 14-QPR3 من نظام التشغيل Android والإصدارات الأحدث، يكون مستوى واجهة برمجة التطبيقات للمورّد يتم إصدارها بشكل منفصل، أي مستوى واجهة برمجة التطبيقات (SDK) لواجهة برمجة التطبيقات (SDK) ومورِّدها مستوى واجهة برمجة التطبيقات غير متزامن.

بسبب جداول الإصدارات المنفصلة، لنظام التشغيل Android 14-QPR3 وما بعده، يصبح مستوى واجهة برمجة التطبيقات للموردين كليًا منفصلة عن مستوى واجهة برمجة التطبيقات لحزمة تطوير البرامج (SDK) وللتأكد من وضوح هذا الفصل، مستوى واجهة برمجة التطبيقات للمورّد هو تاريخ بتنسيق YYYYMM (السنة والشهر) في حين يكون مستوى حزمة SDK عددًا صحيحًا

يحتوي الإصدار Android 14-QPR3 والإصدارات الأحدث على النظام التالي المواقع المرتبطة بمستوى واجهة برمجة التطبيقات للمورّد (ro.vendor.api_level):

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

تحديد مستوى واجهة برمجة التطبيقات للمورّد (Android 13)

يتبع مستوى واجهة برمجة التطبيقات للمورّد مستوى واجهة برمجة التطبيقات لحزمة تطوير البرامج (SDK) الخاص بنظام التشغيل app-OS. يتم تحديثها مرة واحدة في السنة عند طرح نظام Android الأساسي الجديد إلى AOSP.

يحتوي Android 13 على النظام التالي المواقع المرتبطة بمستوى واجهة برمجة التطبيقات للمورّد (ro.vendor.api_level):

خاصية النظام التنسيق الوصف الإعداد الأولي
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) لشجرة المصدر حيث تم إنشاء قسم المورِّد
ro.vendor.build.version.release عدد صحيح إصدار النظام الأساسي لشجرة المصدر حيث تم إنشاء قسم المورّد.
ro.vendor.build.version.release_or_codename عدد صحيح الاسم الرمزي لشجرة المصدر حيث تم إنشاء قسم المورّد.

يتم ضبط السمة ro.vendor.api_level تلقائيًا على الحدّ الأدنى البالغ ro.board.api_level (أو ro.board.first_api_level في حال عدم تحديد قيمة السمة ro.board.api_level). ro.product.first_api_level