Skia، محرك الرسومات مفتوح المصدر من Google، لديه واجهة برمجة تطبيقات Vulkan Graphics API الخلفية. يمكن استخدام هذه الواجهة الخلفية لعرض واجهة المستخدم في Android Q أو الإصدارات الأحدث.
من المقرر أن يتم إصدار الإصدار الرئيسي التالي من Android، Android 9، الشهر المقبل لأجهزة متعددة. على عكس Android Oreo حيث كانت التحسينات الرئيسية في الغالب مخفية، يوفر Android P المزيد من الميزات التي تواجه المستخدم مثل واجهة المستخدم المُجددة، وإيماءات التنقل، والرفاهية الرقمية مع مواصلة العمل أيضًا على المشروع ثلاثة أضعاف. ولكن خلف الكواليس، قامت Google بتجديد كيفية عمل عرض الرسومات على Android. في Android Oreo، بدأت Google في اختبار الواجهة الخلفية المسرّعة للأجهزة OpenGL لمحرك الرسومات Skia والذي اكتمل في Android P. ومع ذلك، فإن Google لا تتوقف عند هذا الحد، حيث تخطط الشركة لتنفيذ الواجهة الخلفية لفولكان لمحرك الرسومات Skia والذي سيصل إلى Android Q أو إصدار أحدث.
ويأتي الدليل على ذلك من أ تعليق مقدم من أحد مهندسي Google في Chromium Gerrit مفتوح المصدر. يشير التعليق إلى تقرير خطأ حول التنفيذ القادم لـ Vulkan Graphics API لمتصفح Google Chrome على نظام Android. ينص التعليق على أنه في وقت ما في المستقبل، "ستكون هناك حاجة" للحصول على Vulkan API دعم Android WebView عندما يبدأ إطار عمل "[Android] في استخدام Vulkan لـ هوي."
عرض الرسومات في Android
للحصول على المعرفة الأساسية، يعد Skia محرك رسومات مفتوح المصدر وثنائي الأبعاد يُستخدم في Google Chrome وChrome OS وAndroid وFlutter وغيرها من المشاريع الكبرى. Skia هو محرك عرض رسومي تم استخدامه في الإصدارات الأولى من Android للعرض منظر و اللوحة القماشية (الفئات المستخدمة لبناء ورسم واجهة المستخدم في معظم التطبيقات.) استبدل Android 3.0 Honeycomb جزئيًا Skia بـ HWUI، وهي مكتبة تقوم بتحويل أوامر Canvas في أوامر OpenGL المسرَّعة بالأجهزة، على الرغم من أن مكتبة رسومات Skia ثنائية الأبعاد لا تزال مستخدمة في بعض المناطق مثل المسار التنقيط. بالتوازي، أنشأت Google أيضًا واجهة OpenGL الخلفية لـ Skia. والنتيجة هي أنه سيتم إجراء بعض استدعاءات الرسومات لمكتبة Skia بينما سيتم إجراء استدعاءات أخرى للواجهة الخلفية لـ OpenGL. لتنظيف بنية الرسومات، قررت Google أن HWUI ستتحدث الآن مع Skia، التي تتحدث بنفسها مع الواجهة الخلفية لـ OpenGL التي تعمل بالأجهزة، للقيام بعرض واجهة المستخدم. والنتيجة هي أن استدعاءات الرسومات لإطار عمل واجهة المستخدم ستتبع مسارًا واحدًا وليس مسارين.
ربما يتذكر البعض منكم خيار المطور المسمى "Set GPU Renderer" في معاينات المطورين المبكرة لنظام Android 8.0 Oreo. يسمح لك خيار المطور هذا بإجبار HWUI على استخدام Skia وواجهة OpenGL الخلفية التي يتم تسريعها بالأجهزة كعارض GPU لإطار عمل واجهة المستخدم. تمت إزالة خيار المطور لأن هذا السلوك أصبح الآن هو الخيار الافتراضي.
الخطوة التالية التي ستقوم بها Google لتحسين عرض الرسومات هي التبديل من الواجهة الخلفية المسرَّعة بأجهزة OpenGL إلى الواجهة الخلفية المسرَّعة بأجهزة Vulkan. إنها ليست خطوة غير متوقعة على الإطلاق وهي تقدم منطقي، ولكن من الجيد أن نرى أن العمل يجري على تحسين عرض الرسومات على Android. على الرغم من أن هذه الخطوة لن تؤدي إلى إصلاح كل مصدر للتأخير على Android، إلا أنها يجب أن تقلل من أوقات عرض الإطارات عن طريق تقليل المعالجة التي تقوم بها وحدة المعالجة المركزية. نظرًا لأن هذا العمل قيد التنفيذ إلى حد كبير (لم يكتمل في Android P)، فإننا نتوقع إطلاقه مع Android Q أو إصدار Android مستقبلي آخر.
معاينة لاستخدام Vulkan Graphics API لعرض واجهة المستخدم
من الممكن بالفعل اختبار واجهة Vulkan الخلفية لنظام Skia على Android P الآن. هناك معلمة تصحيح يمكنك تعيينها لإجبار Android على استخدام خط أنابيب Skia Vulkan. ما عليك سوى إعادة التشغيل بعد إضافة السطر التالي إلى /system/build.prop:
debug.hwui.renderer=skiavk
ستؤدي إضافة هذا السطر على جهاز يعمل بنظام التشغيل Android Oreo إلى حدوث عطل، لذلك لا ننصح بذلك. على الرغم من أن جهازك سيتم تشغيله بهذه العلامة على Android P، إلا أنه يعاني من أخطاء كبيرة في الوقت الحالي. يفشل Google Pixel Launcher في الغالب في عرض أي خلفيات، ويفشل تحميل مقاطع الفيديو المتحركة في الإعدادات، وهناك العديد من الأخطاء الرسومية في شريط الحالة والإشعارات. بخلاف ذلك، يبدو أن معظم التطبيقات، حتى مقاطع فيديو YouTube والألعاب مثل Doodle Jump، يتم تحميلها بشكل جيد.
شكرًا جزيلاً لمطور XDA المعترف به luca020400 لمساعدتهم في كتابة هذه المقالة، ولتقديم لقطات شاشة توضح كود libhwui.so المفكك، ولتوفير علامة التصحيح لاختبار الواجهة الخلفية لـ Vulkan.
المصدر 1: Talkin’ Treble: كيف ينتصر مهندسو Android في الحرب على التجزئة [آرس تكنيكا]
المصدر 2: خط أنابيب رسومات Android: من الزر إلى Framebuffer [مدونة اينوفكس]
المصدر 3: صفحة الويب Skia [جوجل]
المصدر 4: تعليقات Romain Guy، Android Graphics & Kotlin @ Google [رديت]