يوضح هذا المستند كيفية بدء استخدام مكتبة رسومات Vulkan عن طريق تنزيل نموذج تطبيق Kuronos© وتجميعه وتشغيله.
المتطلّبات الأساسية
قبل البدء، تأكد من إعداد إصدار الأجهزة والنظام الأساسي المناسب. عليك استخدام جهاز أو مُحاكي يتوافق مع Vulkan يعمل بنظام التشغيل Android 7.0 (Nougat) أو من المستوى 24 من واجهة برمجة التطبيقات أو بإصدارات أحدث.
ويمكنك التأكد من إصدار Android من خلال الانتقال إلى قائمة الإعدادات واختيار لمحة عن الهاتف > إصدار Android. بمجرد التأكد من إعداد الجهاز المناسب لإصدار الأجهزة والنظام الأساسي، يمكنك تنزيل البرنامج اللازم.
تنزيل
قبل البدء، يجب تنزيل العديد من الأدوات والبرامج الأخرى. وننصح على مضيف Windows بتجنُّب التسلسل الهرمي المعمّق في مسار الملف للأدوات والرمز المصدر، وهذا لتفادي حدود مسار الملف في بعض إصدارات نظام التشغيل Windows.
- إذا لم يكن لديك "استوديو Android"، يمكنك تنزيله. ويشمل ذلك أحدث حزمة تطوير برامج (SDK) لنظام التشغيل Android.
- تثبيت NDK وCMake من داخل Android Studio أو تنزيلها وتثبيتها بشكل منفصل.
- يجب إنشاء نموذج مرحبًا JNI وتشغيله لضمان عمل "استوديو Android" بشكل صحيح.
- ثبِّت python3 والمكوّنات الأخرى المدرَجة في build.md للنظام الأساسي للمضيف.
استيراد
في هذا القسم، يمكنك تنزيل نموذج مستودع Keronos© Vulkan&، وإنشاء مشروع Android Grale ثم فتحه باستخدام بيئة التطوير المتكاملة في "استوديو Android".
- اضبط متغيرات البيئة التالية:
export ANDROID_HOME=/path/to/sdk-directory export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/{your-ndk-version-dir}
- أضِف CMake إلى $PATH، والذي يُستخدم لإنشاء النصوص البرمجية لإصدار Android:
export PATH=$PATH:$ANDROID_HOME/cmake/{your-cmake-version}/bin
- افتح وحدة طرفية ونزِّل رمز المصدر في دليل التطوير:
cd dev-directory git clone --recursive https://github.com/KhronosGroup/Vulkan-Samples.git
- اتّبِع هذه التعليمات (من Build.md)
لإنشاء نموذج مشروع على Android:
cd Vulkan-Samples ./scripts/generate.py android
- افتح "استوديو Android". اختر ملف > فتح ثم على
Vulkan-Samples/build/android_gradle/build.gradle
. من المفترض أن يظهر لك ما يلي بعد تحميل "استوديو Android" للمشروع:الشكل 1. نموذج المشروع في "استوديو Android"
تجميع
يتم تنظيم جميع النماذج في هذا المخزن ضمن مشروع واحد على Android. لتجميع المشروع، قم بأحد الإجراءات التالية:
- لتجميع المصادر فقط، استخدم القائمة إنشاء > إنشاء مشروع، أو اكتب مفتاح الاختصار Ctrl-F9.
- لإنشاء نموذج APK، اختَر القائمة إنشاء > إنشاء حِزم/APK > إنشاء ملفات APK.
من المفترض أن تظهر لك رسالة نجاح الإصدار داخل نافذة إنشاء في "استوديو Android". في حال ظهور أخطاء، يُرجى إصلاحها ثم إعادة تجميعها.
![جارٍ تجميع نموذج مشروع باستخدام Studio.](https://developer.android.google.cn/ndk/guides/images/vk-guide-compile-project.png?authuser=5&hl=ar)
تنفيذ
قبل تشغيل نموذج المشروع، تأكّد من أنّ "استوديو Android" يتعرف على جهاز Vulkan المتصل أو محاكي Android. من المفترَض أن يظهر لك محتوى على النحو التالي:
![جارٍ ربط جهاز الاختبار بتطبيق "استوديو YouTube".](https://developer.android.google.cn/ndk/guides/images/vk-guide-test-device.png?authuser=5&hl=ar)
لتشغيل المشروع، قم بما يلي:
- استخدِم القائمة Run > Run vulkan_sample، أو انقر على زر التشغيل
في شريط الأدوات، وانتظر إلى أن يتم تثبيت النموذج وبدء تشغيله على جهازك المتصل.
- على جهاز Android المرتبط، عليك تفويض طلبات الوصول المطلوبة.
- تفعيل السماح بالوصول لإدارة جميع الملفات، ثم النقر على السهم زر الرجوع لعرض نموذج شاشة البدء الرئيسية.
- السماح بالوصول إلى القرص:
الشكل 4. تفعيل إمكانية الوصول إلى القرص
- من المفترض أن تظهر لك شاشة نموذج القائمة الرئيسية، على غرار ما يلي:
الشكل 5. نموذج من القائمة الرئيسية - تصفح القائمة النموذجية وحدد بعضًا منها لتشغيلها.
إذا كنت جديدًا في تطوير Vulkan، يمكنك البدء بعينات "API".
على سبيل المثال، من المفترض أن يؤدي النقر على "مرحبًا مثلث" إلى عرض مثلث معروض على النحو التالي:
الشكل 6. مرحبًا عيّنة من مثلث.
تم إعداد نظام التطوير الآن لتشغيل النماذج على جهاز الاختبار الخاص بك.
تم تطوير Vulkan Samples لأنظمة تشغيل متعدّدة، بما في ذلك أنظمة التشغيل المخصّصة لأجهزة الكمبيوتر المكتبي والأجهزة الجوّالة. قد تكون بعض النماذج ضمن الأداء والإضافات والأدوات غير مستقرة أو تتعطّل على جهازك. قد يرجع ذلك إلى أسباب مختلفة، منها:
- لم يتم تصميم ميزات Vulkan المحددة لنظام Android.
- إصدار نظام التشغيل Android الذي تستخدمه غير متوافق.
- إمكانات وحدة معالجة الرسومات (GPU) للنظام الأساسي لجهازك
استكشاف
يُستمَد قسم Java في عيّنة Vulkan من فئة NativeActivity. وهي تمرر أحداث مراحل نشاط التطبيق النموذجية، مثل إنشاء التطبيق وبدء تشغيله وإيقافه وتدميره إلى كود C/C++. في القسم C/C++ من العينة، يوجد نموذج إطار عمل ينفذ وظيفة التبديل بين النموذج الفرعي في وقت التشغيل. على مستوى عالٍ جدًا، تخضع أحداث/رسائل نظام Android للمسار التالي للوصول إلى رمز Vulkan الخاص بنموذج التطبيق:
- قسم JavaScript واحد (
NativeSampleActivity
) - قسم C/C++ واحد (
NativeSampleActivity
) - رمز
android_native_glue
android_main
- نموذج إطار عمل
- رمز عيّنة فرعية فردية
android_main
هو جسر بين NativeSampleActivity
ورمز التطبيق،
والذي يمكن أن يكون نقطة البداية لاتباع نموذج التعليمات البرمجية. إذا كنت تريد التركيز فقط على مصادر Vulkan المحددة، يمكنك استكشاف الرمز ضمن Vulkan_Samples\samples
الذي يحتوي على ما يلي:
- نماذج فئة "واجهة برمجة التطبيقات".
- عيّنات فئة "الأداء".
- نماذج فئة "الإضافات".
- عينات "الأدوات".
تتوفّر ميزة "Vulkan_Samples\shaders
" لجميع أدوات التظليل.
يمكنك البدء في تصفح عينات فئة "واجهة برمجة التطبيقات" للتعرف على استخدام Vulkan الأساسي ونموذج إطار العمل. بعد ذلك، يمكنك التقدم إلى عينة فئة "الأداء" و"الامتدادات". للحصول على رمز أداة التظليل، يمكنك استخدام عرض المشروع في "استوديو Android".
![أداة تظليل المثلث.](https://developer.android.google.cn/ndk/guides/images/vk-guide-shaders.png?authuser=5&hl=ar)
مراجع إضافية
لقد اختبرت واجهة برمجة تطبيقات Vulkan بضعة إصدارات، ولذلك فهي لم تنضج. أنشأت لجنة Vulkan العادية ومنتدى Vulkan مجموعة غنية من مواد Vulkan توضّح استخدام واجهة برمجة التطبيقات وأفضل الممارسات المتعلّقة بها. تحتوي القائمة التالية على بعض الموارد لتطوير تطبيقات Vulkan:
مواصفات Vulkan: تحافظ مجموعة Keronos على مواصفات Vulkan. يمكنك الانتقال إلى صفحة Vulkan الرئيسية للاطّلاع على المواصفات الكاملة والتدريبات والأدلة والبرامج التعليمية.
طبقات التحقق: تعد طبقات التحقق من الصحة ضرورية لتطوير التطبيقات. يمكنك الاطّلاع على مستندات طبقات التحقق من Vulkan على Android للحصول على التفاصيل.
شاديرك. يُذكر أن رمز Shaderc في NDK هو الجزء الذي يظهر أسفل Shaderc repo. للحصول على مستندات الاستخدام والتعليمات للحصول على أحدث إصدار، راجع المحولات البرمجية لـ Shader.