Vendor Native Development Kit (VNDK) مجموعه ای از کتابخانه ها است که توسط سایر کتابخانه ها یا باینری ها در پارتیشن فروشنده یا محصول در زمان اجرا برای dlopen استفاده می شود.  AOSP بهروزرسانیهای فقط چارچوب را میدهد که در آن پارتیشن سیستم را میتوان به آخرین نسخه چارچوب ارتقا داد در حالی که پارتیشن فروشنده بدون تغییر باقی میماند. با وجود اینکه در زمانهای مختلف ساخته میشوند، باینریها در هر پارتیشن باید بتوانند با یکدیگر کار کنند.  به روز رسانی های فقط چارچوب شامل چالش های زیر است:  برای مقابله با این چالش ها، اندروید دارای چندین ویژگی مانند VNDK (شرح داده شده در این بخش)، HIDL ، hwbinder، پوشش درختی دستگاه و پوشش sepolicy است.  در دنیای ایدهآل اندروید 8.0 و بالاتر، فرآیندهای چارچوب کتابخانههای مشترک فروشنده را بارگیری نمیکنند، همه فرآیندهای فروشنده فقط کتابخانههای مشترک فروشنده (و بخشی از کتابخانههای مشترک چارچوب) را بارگیری میکنند، و ارتباطات بین فرآیندهای چارچوب و فرآیندهای فروشنده توسط HIDL و سختافزار کنترل میشود.  چنین دنیایی شامل این امکان است که APIهای پایدار و عمومی از کتابخانه های مشترک چارچوب ممکن است برای توسعه دهندگان ماژول فروشنده کافی نباشد (اگرچه API ها می توانند بین نسخه های اندرویدی تغییر کنند)، که مستلزم آن است که بخشی از کتابخانه های مشترک چارچوب برای فرآیندهای فروشنده قابل دسترسی باشد. علاوه بر این، از آنجایی که الزامات عملکرد می تواند منجر به مصالحه شود، برخی از HAL های حیاتی در زمان پاسخ باید به گونه ای متفاوت رفتار شوند.  بخشهای زیر به جزئیات نحوه مدیریت VNDK کتابخانههای مشترک چارچوب برای فروشندگان و HALهای فرآیندی (SP-HAL) میپردازد.  این بخش معیارهای طبقه بندی کتابخانه های مشترکی را که برای فرآیندهای فروشنده قابل دسترسی هستند، توضیح می دهد. دو رویکرد برای پشتیبانی از ماژول های فروشنده در چندین نسخه اندرویدی وجود دارد:  بسته به ویژگی های کتابخانه های مشترک از رویکردهای متفاوتی استفاده می شود. در نتیجه، کتابخانه های مشترک چارچوب به سه زیر دسته طبقه بندی می شوند:  Same-Process HAL ( SP-HAL ) مجموعهای از HALهای از پیش تعیینشده است که بهعنوان کتابخانههای اشتراکی فروشنده پیادهسازی شده و در فرآیندهای چارچوب بارگذاری میشوند. SP-HAL ها توسط یک فضای نام پیوند دهنده ایزوله می شوند (کتابخانه ها و نمادهایی را که برای کتابخانه های مشترک قابل مشاهده هستند را کنترل می کند). SP-HAL ها باید فقط به LL-NDK و VNDK-SP وابسته باشند.  VNDK-SP یک زیر مجموعه از پیش تعریف شده از کتابخانه های VNDK واجد شرایط است. کتابخانههای VNDK-SP به دقت بررسی میشوند تا اطمینان حاصل شود که بارگذاری دوبار کتابخانههای VNDK-SP در فرآیندهای چارچوب مشکلی ایجاد نمیکند. هر دو SP-HAL و VNDK-SP توسط گوگل تعریف شده اند.  کتابخانه های زیر SP-HAL های تایید شده هستند:  کتابخانههای VNDK-SP   موارد زیر کتابخانههای فقط چارچوب با استثناهای RS (FWK-ONLY-RS) هستند:  کتابخانه های مشترک VNDK نسخه شده اند:  مقدار   مجموعه تست فروشنده Android (VTS) یک ویژگی 
بر اساس این مسائل، تصمیم گرفتیم VNDK را با شروع اندروید 15 منسوخ کنیم.ro.vndk.versionro.product.vndk.versionTARGET_VNDK_USING_CORE_VARIANT برای دستگاههای Android Gouse_vndk_as_stable برای APEX های فروشندهsystem هستند:/system/bin یا /system/xbin اطلاق می شود./system/lib[64] اشاره می کنند./system/bin/app_process ایجاد می شوند.vendor است:/vendor/bin اشاره دارد/vendor/lib[64] اشاره میکنند./vendor/bin/android.hardware.camera.provider@2.4-service ایجاد میشوند.libEGL.so ، libGLESv1_CM.so ، libGLESv2.so ، libGLESv3.so ، libandroid_net.so ، libc.so ، libdl.so ، liblog.so ، libm.so ، libnativewindow.so ، libneuralnetworks.so . libsync.so ، libvndksupport.so ، و libvulkan.so ،libGLESv1_CM_${driver}.solibGLESv2_${driver}.solibGLESv3_${driver}.solibEGL_${driver}.sovulkan.${driver}.soandroid.hardware.renderscript@1.0-impl.soandroid.hardware.graphics.mapper@2.0-impl.sovndk: { support_system_process: true } را در فایلهای Android.bp خود مشخص میکنند. اگر vndk: {private:true} نیز مشخص شده باشد، این کتابخانه ها VNDK-SP-Private نامیده می شوند و برای SP-HALS نامرئی هستند.libft2.so (Renderscript)libmediandk.so (Renderscript)ro.vndk.version سیستم به طور خودکار به /vendor/default.prop اضافه می شود.com.android.vndk.v${ro.vndk.version} نصب شده و در /apex/com.android.vndk.v${ro.vndk.version} نصب می شوند.ro.vndk.version با الگوریتم زیر انتخاب می شود:BOARD_VNDK_VERSION برابر current نیست، از BOARD_VNDK_VERSION استفاده کنید.BOARD_VNDK_VERSION برابر با current باشد:PLATFORM_VERSION_CODENAME REL است، از PLATFORM_SDK_VERSION استفاده کنید (مثلاً 28 ).PLATFORM_VERSION_CODENAME (به عنوان مثال P ) استفاده کنید.ro.vndk.version غیرخالی را الزامی می کند. هم دستگاه های تازه راه اندازی شده و هم دستگاه های در حال ارتقا باید ro.vndk.version تعریف کنند. برخی از موارد آزمایش VNDK (به عنوان مثال VtsVndkFilesTest و VtsVndkDependencyTest ) برای بارگیری مجموعه داده های واجد شرایط کتابخانه های VNDK به ویژگی ro.vndk.version متکی هستند.
      نمای کلی کیت توسعه بومی فروشنده (VNDK).
  
  
  محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-10-10 بهوقت ساعت هماهنگ جهانی.
  
  
    
      [[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-10-10 بهوقت ساعت هماهنگ جهانی."],[],[]]